Zdravím
Mám jeden dotaz,mám program ve kterem zapisuji do,prohlizim z a mazu z TXT souboru.
Chtěl bych ale udělat abych mohl dané hodnoty i vyhledávat např podle jména,příjmení apod,tak abych je načetl do pole a hodnoty ,ktere se shodují pak vypsal na screen.
Zajímá mne také,zda je toto vůbec možné u txt,tzn:např hodnoty tel.číslo,jméno či další spolu mají společného jenom to,že patří k jednomu záznamu,tzn že pokud zadám třeba číslo a bude obsaženo v txt,tak aby se mi vypsal celý záznam(tj.napr prijmeni,jmeno,t.číslo) s tím,že samozřejmě před zápisem odstraním diakritiku a převedu na malá písmena..
Díky za jakoukolliv radu
Pro představu přikládám ZK:
program seznam;
uses crt;
const {konstanta pro generovani dotazu behem zadani}
polozka: array[1..4] of string= ('prijmeni','jmeno',
'telefonni cislo','cislo na mobil');
var
zadani,radek,soubor:string;
s:text; {textovy soubor}
i:integer;
odpoved:char;
procedure novy; {vytvori novy soubor}
begin
rewrite(s);
write(s,'Prijmeni':15); {a zapise do neho hlavicku}
write(s,'Jmeno':15);
write(s,'Telefon':15);
writeln(s,'Mobil':15);
for i:=1 to 60 do write(s,'-');
writeln(s);
close(s);
end;
procedure inicializace;
begin
clrscr;
write('Jmeno souboru: '); {vyber souboru}
readln(soubor);
assign(s,soubor);
{$I-}
reset(s); {testuje jestli soubor existuje}
{$I+}
if ioresult<>0 then novy {kdyz ne tak ho vytvori}
else close(s);
end;
procedure vypis; {vypise obsah souboru}
begin
clrscr;
reset(s);
while not eof(s) do begin
readln(s,radek);
writeln(radek);
end;
repeat until keypressed;
close(s);
end;
procedure vymaz; {vymaze aktualni soubor}
begin
clrscr;
erase(s);
writeln('Soubor ',soubor,' byl smazan!');
writeln('Chcete vybrat jiny soubor A/N');
if upcase(readkey)='A' then inicializace {otevre bud jiny soubor}
else halt; {nebo ukonci program}
end;
procedure pridat; {prida polozku do souboru}
begin
append(s);
repeat
clrscr;
for i:=1 to 4 do begin {generuje dotaz pomoci konstant}
write('Zadejte ',polozka[i],': ');
readln(zadani);
write(s,zadani:15);
end;
writeln(s);
writeln('----------------------');
writeln('Dalsi zaznam? (A/N)');
until upcase(readkey)<>'A';
close(s);
end;
begin { hlavni program - menu}
inicializace;
repeat
clrscr;
writeln('Soubor: ',soubor);
writeln('---------------------');
writeln('Vypsat obsah ...... V');
writeln('Pridat polozku .... P');
writeln('Smazat soubor ..... S');
writeln('Zmena souboru ..... Z');
writeln('---------------------');
writeln('Konec ........... Esc');
odpoved:=upcase(readkey);
case odpoved of
'V': vypis;
'P': pridat;
'Z': inicializace;
'S': vymaz;
end;
until odpoved=chr(27);
end.