Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Lettura file txt esterni??
Forum - Pascal - Lettura file txt esterni??

Avatar
totò93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 03/09/2008

Segnala al moderatore
Postato alle 14:09
Mercoledì, 03/09/2008
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!!

PM Quote
Avatar
John (Ex-Member)
Pro


Messaggi: 191
Iscritto: 18/11/2007

Segnala al moderatore
Postato alle 17:21
Venerdì, 05/09/2008
scusa: il numero è sempre 4 cifre??

PM Quote
Avatar
totò93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 03/09/2008

Segnala al moderatore
Postato alle 20:53
Venerdì, 05/09/2008
Ciao! Si cioè in realtà non sono 4 numeri bensì una lettera e tre numeri. Ad ogni modo i caratteri sono sempre 4.

PM Quote
Avatar
John (Ex-Member)
Pro


Messaggi: 191
Iscritto: 18/11/2007

Segnala al moderatore
Postato alle 22:25
Sabato, 06/09/2008
ok. allora provo a buttare giù qualcosa stasera...

PM Quote
Avatar
John (Ex-Member)
Pro


Messaggi: 191
Iscritto: 18/11/2007

Segnala al moderatore
Postato alle 23:29
Sabato, 06/09/2008
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.

Codice sorgente - presumibilmente Delphi

  1. program cerca_codice;
  2. uses crt;
  3. var testo:text;
  4.     query,letto,codice,filename: string;
  5.     k,i :integer;
  6.     uguali,trovato: boolean;
  7.  
  8. begin
  9. textcolor(lightgreen);
  10. textbackground(blue);
  11. clrscr;
  12.  
  13. Write('Nome file da aprire? [comprendere estensione] ');
  14. readln(filename);
  15. assign(testo,filename);
  16. reset(testo);
  17.  
  18. write('Elemento di cui cercare il codice? [case SeNsItIvE] ');
  19. readln(query);
  20.  
  21. trovato:=false;
  22. clrscr;
  23.  
  24. while ((trovato=false) and not(eof(testo))) do
  25. {finchè non è stato trovato l'elemento della ricerca o è finito il file}
  26. begin
  27.  {leggo una riga dal file}
  28.  readln(testo,letto);
  29.  uguali:=true;
  30.  k:=1;
  31.  while not(letto[k]=';') do
  32.  begin
  33.   if not(query[k]=letto[k]) then
  34.   {Il primo carattere diverso trovato prima del ; rende l'uguaglianza tra le stringhe FALSA}
  35.   begin
  36.     uguali:=false;
  37.     break; {esce dal while}
  38.   end;
  39.   k:=k+1;
  40.  end;
  41.  if uguali then
  42.  {se tutti i caratteri prima del ; erano uguali, cerchiamo il codice...}
  43.  begin
  44.   k:=k+1; {salto lo spazio}
  45.   for i:=k to k+4 do
  46.    codice:=codice+letto[i];
  47.   writeln('Codice di ',query,': ',codice);
  48.   trovato:=true;
  49.  end
  50.  else
  51.   trovato:=false;
  52. end;
  53. if (trovato=false) then
  54.  writeln('Query non trovata nel file ',filename);
  55. readln;
  56. 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:

PM Quote
Avatar
totò93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 03/09/2008

Segnala al moderatore
Postato alle 17:22
Domenica, 07/09/2008
Grazie mille!!!! Adesso poi lo provo e dico se c'è qualche problema! :):) :k::k:

Ultima modifica effettuata da totò93 il 07/09/2008 alle 17:24
PM Quote
Avatar
totò93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 03/09/2008

Segnala al moderatore
Postato alle 12:01
Lunedì, 08/09/2008
Guarda sei il mio mito!!! Grazieeeeeeeeee

PM Quote
Avatar
John (Ex-Member)
Pro


Messaggi: 191
Iscritto: 18/11/2007

Segnala al moderatore
Postato alle 18:00
Lunedì, 08/09/2008
Testo quotato

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:

PM Quote
Avatar
totò93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 03/09/2008

Segnala al moderatore
Postato alle 22:52
Lunedì, 08/09/2008
Purtroppo i collegamenti con i file esterni in pascal non li so trattare bene... forse anche perché non ho ancora trovato una guida appropriata... Ed ecco però che anche una piccola cosa per te, per me è un'ottima occasione didattica per imparare e in questo caso (anche se ne sono un po' dispiaciuto) copiare.
Ciao e grazie ancora! :k:

PM Quote