Страница 1 из 1

Файл

Добавлено: 01 апр 2007, 12:26
tar
Программа должна проверить: существует ли в данной директории txt (например filename.txt) файл,

если существует,
то необходимо открыть его, добавить (т.е. если в нём было что-то записано, не
нужно перезаписывать, нужно добавить) в него строки (например, s1,s2,s3) и
сохранить - закрыть файл;

если не существуетб то создать файл под указанным именем и выполнить те же
действия, что описаны выше.

Помогите, пожалуйста, напишите код :(

Вот то что сотворил я, но этот код выдаёт ошибку

procedure TForm1.Button1Click(Sender: TObject);
var
f:TStrings;
s1,s2,s3:string;
fs:TFileStream;


begin

if fileexists('c:\filename.txt') then
Begin
f:=TStrings.Create;
f.LoadFromFile('c:\filename.txt');
s1:='string 1';
s2:='string 1';
s3:='string 1';
f.append(s1);
f.append(s2);
f.append(s3);
f.SaveToFile('c:\filename.txt');
f.Free;
end
else
Begin
fs:=TFileStream.Create('c:\filename.txt',fmCreate,fmShareDenyNone);
fs.Free;
f:=TStrings.Create;
f.LoadFromFile('c:\filename.txt');
s1:='string 1';
s2:='string 1';
s3:='string 1';
f.append(s1);
f.append(s2);
f.append(s3);
f.SaveToFile('c:\filename.txt');
f.Free;
end;

Re: Файл

Добавлено: 01 апр 2007, 21:07
Игорь Акопян
во втором блоке когда файла нет:
fs убрать - ничего не делает, создаёшь и тут же убиваешь
далее

Код: Выделить всё

  f:=TStringsList.Create; // TStringList!
  f.Add('string 1');
  f.Add('string 1');
  f.Add('string 1');
  f.SaveToFile('c:\filename.txt');
  f.Free;

Re: Файл

Добавлено: 02 апр 2007, 09:06
LAngel
[syntax=delphi]var
fs: TFileStream;
OpenMode: Word;
s: String;
begin
if not FileExists('filename.ext')
then OpenMode := fmCreate or fmShareDenyNone
else OpenMode := fmOpenWrite or fmShareDenyNone;
fs := TFileStream.Create('filename.ext', OpenMode);
try
fs.Position := fs.Size;
s := s1 + #13#10;
fs.Write(s[1], Length(s));
s := s2 + #13#10;
fs.Write(s[1], Length(s));
s := s3 + #13#10;
fs.Write(s[1], Length(s));
finally
fs.Free;
end;
end[/syntax]