Zapis Memo do pliku

0

Witam,
Mam problem który wygląda tak: chodzi o zapisanie do pliku zawartości Memo do tej pory robiłem to tak Memo.Lines.SaveToFile(); no i to działa ale chodzi o to że to mi podmienia zawartość pliku ze starej na nową a jak zrobić żeby starej nie kasowało tylko nową powiedzmy dodawało w nowej lini?? Szukałem troche ale nie znalazłem jednoznacznie jak to zrobić.

1

Napisz własną procedurę do zapisu plików. Użyj np TStringList.

  1. wczytaj istniejący plik
  2. dopisz do TStringList'a to, co chcesz zapisac
  3. zapisz całość do pliku

P.S.

var
str : TStringList;
begin
str := TStringList.create();
str.loadFromFile(...);
str.add(...);
str.append(...); // albo jakoś tak
str.saveToFile(...);
str.free();
end;

Pisane z pamięci, ale mniej-więcej tak to działa.

1

Zapisz do zmiennej zawartość nowego pliku,wczytaj stary i dodaj nową linię zawierająca zmienną z nowym plikiem - Memo.Lines.Add(); a potem to zapisz.

0

Otwierasz plik za pomocą TFileStream, przesuwasz wskaźnik na koniec, używasz SaveToStream, zamykasz plik.

0
var f:TextFile;
AssignFile(f,'nazwa_pliku');
Append(f);
WriteLn(f);//pusta linia
WriteLn(f,Memo.Text);//cała zawartość Memo
CloseFile(f);
1

Dziękuję za pomoc zrobiłem co chciałem i działa piękinie, swoją drogą nie bawiłem się jeszcze TStringList a okazuje się że to bardzo ciekawa i przydatna rzecz. Jeszcze raz dziękuję:)) i powiedzmy dla potomnych wygląda to dokłądnie tak:

 
procedure zapis;
var
  log:TStringList;
begin
log := TStringList.Create;
log.LoadFromFile('C:\texttest.txt');
log.Add('');
log.AddStrings(Form1.Memo2.Lines);
log.SaveToFile('C:\texttest.txt');
log.Free;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1