Oppure

Loading
03/09/08 12:09
totò93
Allora, io ho un file txt che contiene dei dati, essi sono perfettamente strutturati es:

PINCO PALLINO; 5678
TAL DEI TALI; 8769
PASCAL; 1236

ecc. Avrei bisogno che letta una stringa tipo 'TAL DEI TALI' lui andasse a cercare quest'ultima nel file e prelevasse il numero dopo il punto e virgola. :-?
Grazie mille!!
aaa
05/09/08 15:21
John
scusa: il numero è sempre 4 cifre??
aaa
05/09/08 18:53
totò93
Ciao! Si cioè in realtà non sono 4 numeri bensì una lettera e tre numeri. Ad ogni modo i caratteri sono sempre 4.
aaa
06/09/08 20:25
John
ok. allora provo a buttare giù qualcosa stasera...
aaa
06/09/08 21:29
John
Ecco il programma che potrebbe risolvere il tuo problema:
Legge riga per riga il file e controlla se quello scritto prima del ";" corrisponde con quello che stai cercando, se è così copia il codice.

program cerca_codice;
uses crt;
var testo:text;
    query,letto,codice,filename: string;
    k,i :integer;
    uguali,trovato: boolean;

begin
textcolor(lightgreen);
textbackground(blue);
clrscr;

Write('Nome file da aprire? [comprendere estensione] ');
readln(filename);
assign(testo,filename);
reset(testo);

write('Elemento di cui cercare il codice? [case SeNsItIvE] ');
readln(query);

trovato:=false;
clrscr;

while ((trovato=false) and not(eof(testo))) do
{finchè non è stato trovato l'elemento della ricerca o è finito il file}
begin
 {leggo una riga dal file}
 readln(testo,letto);
 uguali:=true;
 k:=1;
 while not(letto[k]=';') do
 begin
  if not(query[k]=letto[k]) then
  {Il primo carattere diverso trovato prima del ; rende l'uguaglianza tra le stringhe FALSA}
  begin
    uguali:=false;
    break; {esce dal while}
  end;
  k:=k+1;
 end;
 if uguali then
 {se tutti i caratteri prima del ; erano uguali, cerchiamo il codice...}
 begin
  k:=k+1; {salto lo spazio}
  for i:=k to k+4 do
   codice:=codice+letto[i];
  writeln('Codice di ',query,': ',codice);
  trovato:=true;
 end
 else
  trovato:=false;
end;
if (trovato=false) then 
 writeln('Query non trovata nel file ',filename);
readln;
end.


Occhio che è case sensitive (se cerchi "abc" e nel file hai salvato il dato come "Abc", ti dirà che non lo trova!!) e che non ho previsto l'eventualità che il file che si tenta di aprire non esista, in tal caso il programma crasha....

Hope you'll find it useful!!:k::k:
aaa
07/09/08 15:22
totò93
Grazie mille!!!! Adesso poi lo provo e dico se c'è qualche problema! :):) :k::k:
Ultima modifica effettuata da totò93 07/09/08 15:24
aaa
08/09/08 10:01
totò93
Guarda sei il mio mito!!! Grazieeeeeeeeee
aaa
08/09/08 16:00
John
Postato originariamente da totò93:

Guarda sei il mio mito!!! Grazieeeeeeeeee


Per così poco??
So fare di meglio....:rotfl::rotfl:

No cmq io mi diverto molto a fare questi programmi.... molta logica e pochi semplici comandi....

Alla prossima!!:k:
aaa