私は現在、Delphi 2010で、ファイルのハッシュを生成するプログラムに取り組んでいます。この一環として、ユーザーが作成/保存/削除できるハッシュアルゴリズムの事前定義された選択など、ユーザープリセットを作成するオプションがあります。コードの作成と読み込みは正常に機能しています。これはComboBoxを使用し、ファイル「fhpre.ini」からロードします。このファイル内には、次の形式で保存されたユーザープリセットがあります。-
ResetNameプリセット
コード(ハッシュしない場合は0、ハッシュする場合は1を使用する12桁の文字列)
アプリケーションをロードすると、このファイルからComboBoxと、配列内の対応する正しい0と1の文字列に一致するComboBoxのItemIndexを持つ配列にデータがロードされます。
次に、ユーザーにリストからプリセットを削除させる機能を実装する必要があります。これまでのところ、私のコードは次のとおりです。
procedure TForm1.Panel23Click(Sender : TObject);
var
fil : textfile;
contents : TStringList;
x,i : integer;
filline : ansistring;
filestream : TFileStream;
begin //Start Procedure
//Load data into StringList
contents := TStringList.Create;
fileStream := TFileStream.Create((GetAppData+'\RFA\fhpre.ini'), fmShareDenyNone);
Contents.LoadFromStream(fileStream);
fileStream.Destroy();
//Search for relevant Preset
i := 0;
if ComboBox4.Text <> Contents[i] then
begin
Repeat
i := i + 1;
Until ComboBox4.Text = Contents[i];
end;
contents.Delete(i); //Delete Relevant Preset Name
contents.Delete(i); //Delete Preset Digit String
//Write StringList back to file.
AssignFile(fil,(GetAppData+'\RFA\fhpre.ini'));
ReWrite(fil);
for i := 0 to Contents.Count -1 do
WriteLn(Contents[i]);
CloseFile(fil);
Contents.Free;
end;
ただし、これを実行すると、WriteLnセクションに到達したときに105エラーが発生します。コードが優れていないことは承知しています。たとえば、同じ名前のプリセットのチェックがありませんが、それが実現するので、最初にベースコードを機能させてから、チェックを調整して追加することができます。
どんな助けでもいただければ幸いです。