Jaka funkcja umożliwi mi dopisywanie do już istniejącego pliku tekstowego nowych linijek textu bez usuwania wcześniej zapisanego.
Zapis: Memo1.Lines.SaveToFile(nazwa pliku+'.txt'); dopisując nowy text do pliku usuwa dotyczczasowy ......????
krzysiek
Append(plik) + F1
Zobacz sobie w helpie assignfile, reset, write, closefile.
Radze skorzystac z kursow. Wszystko znajduje sie na 4p.Poczytaj, przyda ci sie :D
<font color="green">Zobacz sobie w helpie assignfile, reset, write, closefile.</span>
Żadne z tych metod nie doprowadzą do dopisywania :)
<font color="green">Zobacz sobie w helpie assignfile, reset, write, closefile.</span>
Żadne z tych metod nie doprowadzą do dopisywania :)
Po pierwsze nie reset (i nie rewrite), a właśnie Append, bo to od tego zależy że plik będzie poszerzony o nową ttreść.
Po drugie jak żadne nie doprowadzą jak doprowadzą :P. Write doprowadzi, oczywiście pod warunkiem że AssignFile (przypisanie pliku), Append (otwarcie) i CloseFile (zamkniecie) beda dobrze uzyte (@LL jest w helpie). Można jeszcze użyc Flush jeżeli chcemy by nowa zawartośc natychmiast znalazła się na dysku, a nie zamykamy jeszcze pliku...
mozna zdaje sie to uzysjac dajac odpowiedni parametr w TFileStream.Create(FileName, fmOpenReadWrite);
defaultowo otwiera sie na koncu pliku(chyba) ale mozna przewijac za pomoca seek.
czyli moze to wygladac tak:
[code]
var
fs:TFileStream;
MyStrings:TStrings;
begin
fs:=TFileStream.Create(FileName,fmOpenReadWrite);
MyStrings.SaveToStream(fs);
fs.Free;
end;
[/code]
powinno zadzialac
procedure TForm1.Button1Click(Sender: TObject);
var plik : Textfile;
begin
AssignFile(Plik, 'C:\plik.txt');
Append(plik);
Write(plik, memo1.Lines.Text);
CloseFile(plik);
end;
albo prosciej w memo: :)
memo1.lines.loadfromfile('plik.txt');
memo1.add('nowa tresc');
memo1.lines.savetofile('plik.txt');
powinno zadzialac :)
O nie!! Żadnych niewidocznych komponentów.. jeśli już to TStringList.
DETOX, wiem ze tak mozna, ale w pierwszym poscie tematu napisal ze uzywa memo :)
PS. var
memo1.lines : tstrings; :)