Perche quando mando in esecuzione questo programma la finestra si chiude subito. Dove ho sbagliato.
Il programma dovrebbe leggere da un file di testo (magazzino.txt) le informazioni scritte in questo modo
lava detersivo
8332 10,23 88
sapone liquido
2343 3,12 20
poi devo effetture la ricerca del codice e sottrarre dalla giacenza -1 e devoi sommare il prezzo alla variabile spesa

Program giacenza;
type
codprodotto=1..9999;
Prodotti =RECORD
prodotto:string[10];
codice:codprodotto;
prezzo:real;
Giacenza:integer;
END;

Var
prodottorodotti;
I:Integer;
txtmagazzino:text;
codice:codprodotto ;
trovato:boolean;
n:integer;
spesa:real;
Begin
Assign (txtmagazzino,'c:\magazzino.txt');
Reset (txtmagazzino);
I:=1;
while not eof(txtmagazzino) do
begin
readln(txtmagazzino, prodotto.prodotto, prodotto.codice, prodotto.prezzo, prodotto.giacenza);
I:=I+1;
end;
close(txtmagazzino);

N:=I;
writeln ('Inserisci il numero del prodotto acquistato?');
Readln (codice);
i:=1;
trovato:=FALSE;
While Not (trovato=false) and (i<=N) do
if codice=prodotto.codice then
begin
trovato:=true;
prodotto.giacenza:=prodotto.giacenza+1;
spesa:=spesa+ prodotto.prezzo;
if (codice<>prodotto.codice) then
i:=i+1;
end;
Writeln ('La spesa totale è di euro' ,spesa);
readln;
end.