Pewnie już ten temat był poruszany, ale nie chce mi się szukać ;-). Jak dopisać do coś do istniejącego pliku na jego koniec?? Czyli mam sobie w pliku textowym dwie linijki i chcę je sobie zostawić i dopisać coś, jako trzecią. Procedura ReWrite usuwa mi te dwie linijki... Help me!! You're my only hope! ;-)
w jednym z artykulow Adama Boducha jest cos takiego :-)
var
TF : TextFile;
begin
AssignFile(TF, 'C:\plik.txt');
try
Append(TF);
Writeln(TF, ''); // jedna linia przerwy
Writeln(TF, 'Oto kolejna linia');
finally
CloseFile(TF);
end;
end;---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-
dzięx wielkie.. Właśnie o coś takiego chodziło, chwilowo działa ;-)
Jeszcze pytanko, potrzebuję sprawdzić, czy plik o danej nazwie istnieje, jeśli nie, to trza go stworzyć(jak pliku nie ma, to powyższa procedurka się wywala...)
var
jakisplik: textfile
begin
AssignFile(jakisplik, 'plik.txt');
if not FileExists('plik.txt') then ReWrite(jakisplik)
else Append(jakisplik);
end;
Nie ma to jak gadać do siebie ;-)
ja bym zrobil tak :-)
var
TF : TextFile;
begin
AssignFile(TF, 'C:\plik.txt');
try
if FileExists('C:\plik.txt') then
Append(TF)
else
ReWrite(TF);
Writeln(TF, '');
Writeln(TF, 'Oto kolejna linia');
finally
CloseFile(TF);
end;
end;
jezeli plik.txt istnieje procedura dopisuje do niego linie a jezeli nie istnieje to tworzy go i tez dopisuje linie :-)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-
W zasadzie moja procedurka od Twojej różni się jedyjnie tym, że użyłeś Try i Finally. Do czego to w zasadzie służy??
Try służy do obsługi wyjątków. Np gdy chcemy napisac kalkulator to gdy użytkownik bedzie chcial cos podzielic przez zero wtedy wyskoczy jakis dziwny blad i program sie wyloczy...
Aby temu zapobiec mozna uzyc wlasnie tego try:
try
wynik:=liczba1/liczba2;
except showmessage('nie dziel przez zero!!!')
zamiast except mozna uzyc finally, ale wtedy komunikat wyswietli sie nawet jak nie bedzie wyjatku :-)
Pozdrawiam @ll;--Rafalrs
Sposob przez was podany to lama, najlepiej to zrobic tak:
procedure tform1.znajdzlinie;
var
TF : textFile;
Ilosclinii : integer;
begin
AssignFile (TF, 'C:\plik.txt'); /Przypisuje plik do zmiennej
reset(TF); /Otwiera plik
while not seekeof(TF) do
begin
ilosclinii:=ilosclinii+1;
end;
writeln('zapisz na koncu pliku');
closefile(TF);
end;
funkcja seekeof wskazuje czy koniec pliku textowego zostal osiagniety
Voodo napisał:
Sposob przez was podany to lama, najlepiej to zrobic tak:
>
>procedure tform1.znajdzlinie;
> var
> TF : textFile;
> Ilosclinii : integer;
> begin
> AssignFile (TF, \'C:\\plik.txt\'); /Przypisuje plik do zmiennej
> reset(TF); /Otwiera plik
> while not seekeof(TF) do
> begin
> ilosclinii:=ilosclinii+1;
>
> end;
> writeln(\'zapisz na koncu pliku\');
> closefile(TF);
> end;
>
>
>funkcja seekeof wskazuje czy koniec pliku textowego zostal osiagniety
Voodo za to twój spsób jest po prostu Boski. Po pierwsze zamiast seekof wystarczy użyż eof ale mniejsza z tym a poza tym co miało oznaczac writeln(\'zapisz na koncu pliku\'); powinno chyba być writeln(tf,\'zapisz na koncu pliku\');