私は現在、Delphi 2010でファイルのハッシュを生成するプログラムを開発中です。これの一部として、ユーザープリセットを作成するオプションがあります。ユーザーが作成/保存/削除できるハッシュアルゴリズムの事前定義された選択。私は作成とロードコードが正常に動作しています。それは、ファイル「fhpre.ini」からコンボボックスや負荷を使用して、このファイル内のフォーマットで保存されたユーザープリセットである: -Delphi - ファイルをStringListに読み込んだ後、削除してファイルに書き戻します
PresetName
PresetCode(0を使用して12桁の文字列がハッシュと1はありませんfor do)
アプリケーションのロード時に、このファイルのデータをComboBoxにロードし、ComboBoxのItemIndexが配列内の対応する0と1の対応する正しい文字列と一致するように配列をロードします。
これで、ユーザーがリストからプリセットを削除する機能を実装する必要があります。これまでのところ、私のコードは次の通りです:
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エラーが発生します。私は、コードが偉大ではないことを知っている、例えば、同じ名前のプリセットのチェックを持っていない、それは来るだろう、私は最初に働く基本コードを取得したいと思うし、余分な小切手などを調整し追加することができます
ご協力いただければ幸いです。
すべてのUnicodeバージョンのDelphi(D2009 +)では、読み書き(Ln)を使用するように注意してください。これらの関数はUnicodeをサポートしていません。 –