Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435

    Ehm.. pascal.. interazione con un file esterno

    Salve, qualcuno mi sa dire se in pascal esiste un qualcosa tipo il:
    codice:
    open classifica.txt for output as #1
    del basic?
    Please.. tnx a lot..

  2. #2
    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

  3. #3
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    pascal standard? cioè?
    non so se intendi ciò, ma uso turbo pascal..
    thanx a lot!

  4. #4
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    Allora:
    mi serve per creare un database di risultati di un giochetto.. devo inserire la variabile 'nick' e la variabile 'tentativi' in ordine crescente.
    codice:
    assign(f,'RESULTS');
    rewrite(f);
    poi per scriverci dentro?
    e per visualizzare con un
    codice:
    case scelta of
    'Y': {Visualizza database}
    'N': {Non visualizzare database}
    il database con i risultati?
    Pliiis help me..

  5. #5


    codice:
    reset (f);
    Apri il file 'RESULTS' in lettura.

    codice:
    rewrite (f);
    Apri il file in scrittura (cancellandone tutto il contenuto se esiste già).

    codice:
    write (f, 'scritta...');
    Con questo comando scrivi sul file 'RESULTS'.

    codice:
    read (f, x);
    Leggi il dato dal file 'RESULTS' e lo inserisci nella variabile x.

    codice:
    close (f);
    Chiudi il file.


  6. #6
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    Intanto grazie..
    Ed infine
    codice:
    writeln(x);
    per scrivere tutto?
    x dev'essere string?

    Per aprirlo in scrittura senza fargli cancellare il contenuto?

  7. #7
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    Mi da:

    Runtime error 2 at 0001:0346.

    cioè?

    Il listato (molto banale e magari anche sporco) è:
    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.
    Potete dirmi come correggerlo?
    Graz' ciax..
    PS: utilizzo TPW1.5.. Turbo Pascal per Windows della Borland International..

  8. #8
    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.

    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.
    Fammi sapere, ciao!

  9. #9
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    "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;"..

  10. #10
    Utente di HTML.it L'avatar di hcka
    Registrato dal
    Oct 2002
    Messaggi
    435
    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.
    non mi funge.. scrive un bordello di volte la stessa riga!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.