ho scritto un programma per la gestione delle prove di verifica da parte di un professore, tra i vari vi è un file con i dati degli alunni(nome,cognome,passw.) .vi è un menù in cui si può cliccare su 4 bottoni:-visualizza studenti
-inserisci studente
-modifica studente
-cancella studente
ecco la procedura di modifica:
lanciata l'esecuzione, nel caso vengano inseriti dati di uno studente che non esiste mi segna il read come errore, andomi un errore di i/o 103, relativamente al fatto che ho continuato a leggere il file anche se era finito, sembrerebbe che non mi prenda l' eof di condizione di entrata nel ciclo!!!!codice:procedure TFrmInStudenti.btnModificaClick(Sender: TObject); var c:integer; trovato,fine:boolean; begin c:=0; trovato:=false; fine:=false; reset(classe); seek(classe,0); NuovoStudente.nome:=inputBox('Nome studente','inserire nome studente da modificare',''); Nuovostudente.cognome:=inputBox('Cognome studente','inserire cognome studente da modificare',''); while (not(eof(classe)))or (not(trovato)) do begin c:=c+1; seek(classe,c-1); read(classe,buffer1); if(NuovoStudente.nome=Buffer1.nome)and(NuovoStudente.cognome=Buffer1.cognome)then begin showMessage('studente trovato'); nuovoStudente:=buffer1; Nuovostudente.nome:=inputBox('Nome studente','inserire Nuovo Nome studente',''); Nuovostudente.cognome:=inputBox('Cognome studente','inserire Nuovo Cognome studente',''); Nuovostudente.password:=inputBox('Password studente','inserire Nuovo password studente',''); seek(classe,c-1); write(classe,Nuovostudente); trovato:=true; end; seek(classe,c+1); end; if not(trovato) then showMessage('studente non trovato'); closefile(classe); end;![]()

Rispondi quotando