Evo ti primjer za rad sa datotekama..
Korisno ako se u datoteci nalaze rijeci ispisane u ovom obliku:
nesto1
nesto2
nesto3
nesto4
.....
Code:
(*****************************************************************
* Rad sa datotekom *
* Coded by Passwd in TurboPascal 7 *
*****************************************************************)
program datoteka;
uses crt;
var lokacija:string[30];
duz:integer;
pod:array[1..100] of string;
fajl,izlaz:text;
t:array [1..100] of string;
x,y,n,broj,max,min:integer;
ime,dat:string;
izbor,izbor1:char;
procedure ucitaj;
begin
clrscr;
writeln('Upisite lokaciju datoteke:');
readln(lokacija);
assign(fajl,lokacija);
reset(fajl);
duz:=0;
writeln('Datoteka je uspjesno ucitana..');
writeln('Sadrzaj datoteke je:');
writeln;
while not eof(fajl) do
begin
inc(duz);
readln(fajl,pod[duz]);
writeln(pod[duz]);
end;
writeln;
writeln;
writeln('Broj redova: ',duz);
end;
procedure izbornik;
begin
writeln;
writeln;
writeln('Odaberite opciju:');
writeln('1-sortiranje imena');
writeln('2-opci podaci');
izbor:=readkey;
case izbor of
'1':begin
writeln;
writeln('Odabrali ste opciju: 1');
writeln('Sortirani podatci:');
for x:=duz-1 downto 1 do
for y:=1 to x do
begin
if pod[y]>pod[y+1] then
begin
t[y]:=pod[y];
pod[y]:=pod[y+1];
pod[y+1]:=t[y];
end;
end;
for y:=1 to duz do begin
writeln(pod[y]);
end;
writeln;
for n:=length(lokacija) downto 1 do
begin
if lokacija[n]='\' then
begin
ime:=copy(lokacija,n+1,length(lokacija));
end;
end;
writeln('Zelite li spremiti sortirane podatke u c:\SORT',ime, ' (d/n)..');
izbor1:=readkey;
dat:='c:\SORT'+ime;
assign(izlaz,dat);
rewrite(izlaz);
if izbor1='d' then begin
for y:=1 to duz do
begin
writeln(izlaz,pod[y]);
end;
end;
close(izlaz);
if izbor1='n' then exit;
end;
'2':begin
writeln('Odabrali ste opciju: 2');
writeln;
broj:=0;
for x:=1 to duz do
begin
broj:=broj+length(pod[x]);
end;
writeln('Ukupni broj znakova: ',broj);
max:=0;
min:=100;
for x:=1 to duz do
begin
if length(pod[x])>max then max:=length(pod[x]);
if length(pod[x])<min then min:=length(pod[x]);
end;
writeln('Najduza rijec sadrzi znakova: ',max);
writeln('To su rijeci:');
for x:=1 to duz do
begin
if length(pod[x])=max then writeln(pod[x]);
end;
writeln;
writeln('Najkraca rijec sadrzi znakova: ',min);
writeln('To su rijeci:');
for x:=1 to duz do
begin
if length(pod[x])=min then writeln(pod[x]);
end;
end;
end;
readln;
end;
procedure kraj;
begin
close(fajl);
end;
begin
ucitaj;
izbornik;
kraj;
readln;
end.
Nadam se da ce ti koristiti!