저는 현재 Delphi 2010에서 파일 해시를 생성하는 프로그램을 만들고 있습니다.이 작업의 일부로 사용자 사전 설정을 만들 수있는 옵션이 있습니다. 사용자가 생성/저장/삭제할 수있는 미리 정의 된 해싱 알고리즘. 생성 및로드 코드가 정상적으로 작동합니다.Delphi - 파일을 StringList로 읽은 다음 파일을 삭제하고 다시 쓰십시오.
PresetName
PresetCode (해시와 일하지 않는 0을 사용하여 12 자리 문자열 - : 그것은이 파일의 형식으로 저장된 사용자 사전 설정입니다 내부 파일에서 "fhpre.ini"콤보 상자로드를 사용 for do)
응용 프로그램로드시이 파일의 데이터가 ComboBox에로드되고 ComboBox의 ItemIndex가 해당 올바른 문자열 인 0과 1과 일치합니다.
이제 사용자가 목록에서 사전 설정을 삭제하도록하는 기능을 구현해야합니다. 다음과 같이 지금까지 내 코드는이 실행되는 경우에는 WriteLn이라는 섹션에 도달 할 때
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;
그러나, 나는 105 오류가있다. 나는 코드가 훌륭하지 않다는 것을 알고있다. 예를 들어 같은 이름을 가진 프리셋에 대한 검사가 없다는 것을 알고있다.하지만 기본 코드가 먼저 작동하게하고 추가 검사를 추가하고 조정할 수있다.
도움을 주시면 감사하겠습니다.
모든 유니 코드 버전의 Delphi (D2009 +)에서 읽기/쓰기 (Ln)를 사용할 때주의하십시오. 이 함수는 유니 코드를 지원하지 않습니다. –