Pliki

0

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! ;-)

0

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] ]=-

0

dzięx wielkie.. Właśnie o coś takiego chodziło, chwilowo działa ;-)

0

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

0

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

0

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] ]=-

0

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??

0

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

0

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

0

Voodo napisał:
Sposob przez was podany to lama, najlepiej to zrobic tak:
&gt
&gtprocedure tform1.znajdzlinie;
&gt var
&gt TF : textFile;
&gt Ilosclinii : integer;
&gt begin
&gt AssignFile (TF, \'C:\\plik.txt\'); /Przypisuje plik do zmiennej
&gt reset(TF); /Otwiera plik
&gt while not seekeof(TF) do
&gt begin
&gt ilosclinii:=ilosclinii+1;
&gt
&gt end;
&gt writeln(\'zapisz na koncu pliku\');
&gt closefile(TF);
&gt end;
&gt
&gt
&gtfunkcja 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\');

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