Salve, qualcuno mi sa dire se in pascal esiste un qualcosa tipo il:
del basic?codice:open classifica.txt for output as #1
Please.. tnx a lot..
Salve, qualcuno mi sa dire se in pascal esiste un qualcosa tipo il:
del basic?codice:open classifica.txt for output as #1
Please.. tnx a lot..
Se stai scrivendo in pascal standard:
http://www.nl.freepascal.org/lists/f...ry/002593.html
Ciao!
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
pascal standard? cioè?
non so se intendi ciò, ma uso turbo pascal..
thanx a lot!
Allora:
mi serve per creare un database di risultati di un giochetto.. devo inserire la variabile 'nick' e la variabile 'tentativi' in ordine crescente.
poi per scriverci dentro?codice:assign(f,'RESULTS'); rewrite(f);
e per visualizzare con un
il database con i risultati?codice:case scelta of 'Y': {Visualizza database} 'N': {Non visualizzare database}
Pliiis help me..
Apri il file 'RESULTS' in lettura.codice:reset (f);
Apri il file in scrittura (cancellandone tutto il contenuto se esiste già).codice:rewrite (f);
Con questo comando scrivi sul file 'RESULTS'.codice:write (f, 'scritta...');
Leggi il dato dal file 'RESULTS' e lo inserisci nella variabile x.codice:read (f, x);
Chiudi il file.codice:close (f);
michele
michele.facchin@virgilio.it
Server:irc.azzurra.org | /join #c
Intanto grazie..
Ed infine
per scrivere tutto?codice:writeln(x);
x dev'essere string?
Per aprirlo in scrittura senza fargli cancellare il contenuto?
Mi da:
Runtime error 2 at 0001:0346.
cioè?
Il listato (molto banale e magari anche sporco) è:
Potete dirmi come correggerlo?codice:program indovinalo; uses wincrt; var numero,prova,tentativi,i,manche:integer; a,b,ta,tb,err,risultante,resultscontenuto:string; f:file; begin; clrscr; a:=('Il numero e` un po` alto.. prova un po` di meno..'); b:=('Il numero e` un po` basso.. prova un po` di piu`..'); ta:=('Il numero e` TROPPO alto.. prova dalle 10 cifre in meno..'); tb:=('Il numero e` TROPPO basso.. prova dalle 10 cifre in piu`..'); err:=('Il numero incognito e` minore di 100!!!'); randomize; write('Quante manche vuoi fare? '); readln(manche); for i:=1 to manche do begin; writeln(''); writeln('Manche ',i,' di ',manche,' :'); numero:=random(100); tentativi:=0; repeat writeln(''); write('Prova ad indovinare il numero.. '); readln(prova); if prova>100 then writeln(err) else if prova>numero+10 then writeln(ta) else if prova>numero then writeln(a) else if prova<numero-10 then writeln(tb) else if prova<numero then writeln(b); tentativi:=tentativi+1; until prova=numero; writeln(''); writeln('Congratulazioni.. L`hai azzeccato dopo ',tentativi-1,' tentativi.. il numero era ',numero,'!!!!!'); write('Inserisci il nick: '); readln(risultante); assign(f,'RESULTS'); reset(f); {read(resultscontenuto);} rewrite(f); {write(resultscontenuto);} write(risultante,(tentativi-1)); read(resultscontenuto); close(f); write(resultscontenuto) end; repeat until keypressed; end.
Graz' ciax..
PS: utilizzo TPW1.5.. Turbo Pascal per Windows della Borland International..
Non conosco il Turbo Pasca per Windows, comunque ti ho scritto un esempio, in modo che tu possa capire meglio l'utilizzo dei comandi per i file.
Fammi sapere, ciao!codice:Program FileX1; Uses crt, dos; Var F : File of Char; c : Char; Begin Assign (F, 'sux.txt'); Reset (F); While (Not (Eof (F))) do Begin Read (F, c); Write (c); End; Close (F); Readln; End.
michele
michele.facchin@virgilio.it
Server:irc.azzurra.org | /join #c
"Eof" sarebbe "end of file"?
beh.. fra il turbo pascal per dos e quello per windows non cambia nulla (per quanto lo uso io) se non "uses wincrt;" al posto di "uses crt;"..
non mi funge.. scrive un bordello di volte la stessa riga!codice:program indovinalo; uses wincrt; var numero,prova,tentativi,i,manche:integer; a,b,ta,tb,err,risultante,resultscontenuto,stringa:string; f:text; scelta:char; begin; clrscr; a:=('Il numero e` un po` alto.. prova un po` di meno..'); b:=('Il numero e` un po` basso.. prova un po` di piu`..'); ta:=('Il numero e` TROPPO alto.. prova dalle 10 cifre in meno..'); tb:=('Il numero e` TROPPO basso.. prova dalle 10 cifre in piu`..'); err:=('Il numero incognito e` minore di 100!!!'); randomize; write('Quante manche vuoi fare? '); readln(manche); for i:=1 to manche do begin; writeln(''); writeln('Manche ',i,' di ',manche,' :'); numero:=random(100); tentativi:=0; repeat assign(f,'RESULTS.txt'); reset(f); while (not (Eof (f))) do begin read(f, stringa); resultscontenuto:=(resultscontenuto+stringa); end; close(f); writeln(''); write('Prova ad indovinare il numero.. '); readln(prova); if prova>100 then writeln(err) else if prova>numero+10 then writeln(ta) else if prova>numero then writeln(a) else if prova<numero-10 then writeln(tb) else if prova<numero then writeln(b); tentativi:=tentativi+1; until prova=numero; writeln(''); writeln('Congratulazioni.. L`hai azzeccato dopo ',tentativi-1,' tentativi.. il numero era ',numero,'!!!!!'); write('Inserisci il nick: '); readln(risultante); assign(f,'RESULTS.txt'); rewrite(f); write(f, resultscontenuto,''); write(f, '',risultante,' , ',(tentativi-1)); close(f); end; writeln(''); write('Vuoi visualizzare il database dei punteggi? [Y]es - [N]o ..'); readln(scelta); assign(f,'RESULTS.txt'); reset(f); while (not (Eof (f))) do begin read(f, stringa); resultscontenuto:=(resultscontenuto+stringa); end; close(f); case scelta of 'Y': writeln(resultscontenuto); 'y': writeln(resultscontenuto); end; repeat until keypressed; end.