Zapis Memo do pliku

motiontronic
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:5
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ć.


I'm beginner...
LN
  • Rejestracja:około 16 lat
  • Ostatnio:około rok
  • Postów:1398
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.

Kopiuj
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.

edytowany 2x, ostatnio: [losowa nazwa]
GM
Nie zauważyłem odpowiedzi :)
GM
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 11 lat
  • Postów:152
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.

edytowany 2x, ostatnio: Golden_Mind
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
pelsta
  • Rejestracja:prawie 19 lat
  • Ostatnio:17 dni
  • Postów:819
0
Kopiuj
var f:TextFile;
AssignFile(f,'nazwa_pliku');
Append(f);
WriteLn(f);//pusta linia
WriteLn(f,Memo.Text);//cała zawartość Memo
CloseFile(f);
edytowany 1x, ostatnio: pelsta
motiontronic
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 14 lat
  • Postów:5
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:

Kopiuj
 
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;

I'm beginner...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.