14/09/10 17:14
petercriss
salve ho questo codice k permette di gestire un file con dei dati di un utente pero è stato compilato in modo da essere ad acceso sequenziale ora devo fare una PROCEDURA ELIMINAZIONE DI UN UTENTE e devo percio "trasformare il codice o aggiungere qualcosa" perche diventi cosi ad accesso diretto inoltre devo utilizzare i comandi seek e erase k nn so utiliazzare ki puo aiutarmi??? grazie mille ,......
p.s. ho gia fatto le procedure di creazione inserimento e stampa
p.s. ho gia fatto le procedure di creazione inserimento e stampa
program file_utente;uses crt; type compactdisk=record {dichiarazione record} nome:string[20]; cognome:string[20]; {campi del record} consumo:real; codice:string[20]; end; ut=file of utente; {inizializzazione struttura dati} var f:ut; rec:utente; {dichiarazione delle variabili utilizzate} a:integer; x:string; sce:integer; totalemese:real; procedure crea(var f1:ut); {procedura creazione} begin rewrite(f1); {apertura file} reset(f1); repeat writeln('INSERISCI I DATI DELL'UTENTE); writeln('-------------------------------------------------'); writeln('inserisci il NOME DELL'UTENTE'); readln(rec.nome); { inserimento campo } writeln('inserisci il cognome dell'utente'); readln(rec.cognome); writeln('inserisci il consumo giornaliero dell'utente'); readln(rec.consumo); { inserimento campo } { inserimento campo } writeln('inserisci codice utente'); readln(rec.codice); { inserimento campo } writeln('--------------------------------------------------'); writeln('vuoi inserire un altro utente? s/n'); {richiesta di un nuovo elemento} readln(x); { lettura scelta} writeln(''); write(f1,rec); clrscr; until x='n'; {scelta} close(f1); {chiusura file} end; {fine} procedure stampa(var f1:ut); {procedura stampa} begin clrscr; {inizio} reset(f1); {apertura file} while not eof(f1) do {ciclo precondizionato} begin {inizio} read (f1,rec); writeln('nome utente: ',rec.nome); {stampa nome} writeln('cognome utente: ',rec.cognome); {stampa cognome} writeln('codice utente: ',rec.codice); {stampa codice} writeln('consumo giornaliero: ',rec.consumo:5:5 ,' euro'); {stampa consumo} consumomensile:(rec.consumo*30); writeln(' consumo mensile: ',totalemese:5:5,'euro'); writeln(''); end; close(f1); {chiusura} end; procedure inserimento(var f1:ut); {procedura inserimento} begin clrscr; {inizio} reset(f1); while not eof(f1) do {apertura file} read (f1,rec); writeln('inserisci il nomte del nuovo utente'); {lettura campo} readln(rec.nome); writeln('inserisci ilcognome del nuovo utente');{lettura campo} readln(rec.cognome); writeln('inserisci il consumo giornaliero'); {lettura campo} readln(rec.consumo); writeln('inserisci il codice del nuovo utente'); {lettura campo} readln(rec.codice); write(f1,rec); Close(f1); {chiusura file} {fine} begin {inizio} clrscr; assign(f,'cd.dat'); {assegnazione dello spazio nella memoria di massa} crea(f); {creazione} clrscr; repeat {ripeti} clrscr; writeln('MENU DI SCELTA utente'); {menu al video} writeln('---------------------'); writeln(' 1)inserisci un nuovo utente'); writeln(' 2)stampa lista degli utenti'); writeln(' 8)uscire'); writeln('---------------------'); writeln(''); repeat {ripeti} writeln('quale paragrafo vuoi consultare?'); {scelta} readln(sce); {lettura variabile scelta} until (sce>0) and (sce<4) or (sce=8); {fine ciclo fino a che} case sce of {case} 1: begin clrscr; inserimento(f); writeln('...premere invio per continuare...'); readln(); end; {procudure scelte} 2: begin clrscr; stampa(f); readln; writeln('...premere invio per continuare...'); readln(); end; end; end; until (sce=8); {fine ciclo finoa che sce =8} end. {fine}
Ultima modifica effettuata da Phi 26/09/10 13:47
aaa