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:
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;
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!!!!