Ciao a tutti!
Ho un piccolo problema con i record: devo leggere da un file di testo le informazioni riguardanti una serie di prodotti di supermercato, e memorizzarle in un record formato dai campi descrizione, codice, prezzo, giacenza. Poi voglio visualizzarle sul monitor. Il problema è che il programma (così come l'ho scritto), termina immediatamente, pur avendo messo un readln alla fine di ogni procedura. Quello che temo è che il programma non trova il file di input, anche se l'ho messo nella stessa directory di lavoro, e quindi termina subito.
Cosa ne pensate voi? Dove sbaglio? Nell'assegnazione del nome del file?
Grazie per l'aiuto! Dario
-------------------------
program spesa;
TYPE
scaffale = 1..10;
prodotto = RECORD
descrizione: ARRAY [scaffale] OF STRING;
codice: ARRAY [scaffale] OF INTEGER;
prezzo: ARRAY [scaffale] OF REAL;
giacenza: ARRAY [scaffale] OF INTEGER;
END;
VAR
prodotti: prodotto;
testo: TEXT;
i,
cod: INTEGER;
{trovato: BOOLEAN;
totale: REAL;}
PROCEDURE leggi_file;
BEGIN
ASSIGN (testo, 'spesa.txt');
RESET (testo);
FOR i := 1 TO 10 DO
BEGIN
READLN (testo, prodotti.descrizione [i]);
read (testo, prodotti.codice [i]);
read (testo, prodotti.prezzo [i]);
read (testo, prodotti.giacenza [i])
END;
CLOSE (testo);
readln
END; { PROCEDURE LEGGI_FILE }
procedure scrivi;
begin
FOR i := 1 TO 10 DO
BEGIN
WRITELN ( prodotti.descrizione [i]);
WRITE ( prodotti.codice [i]);
WRITE ( prodotti.prezzo [i]);
WRITE ( prodotti.giacenza [i])
END;
readln
end;
begin
leggi_file;
scrivi;
readln
end.
------------------
Questo il file di input (spesa.txt):
CAFFE' LAMMAZZA (gr.250x2)
1001 2.80 15
ACQUA MINERALE SFERRARELLE (lt.2x6)
1002 2.78 20
TONNO MIO MARE (gr.80x4)
1003 2.25 20
CARTA IGIENICA SPOTTEX (10 rotoli)
1004 2.20 10
DETERSIVO TRASH (fustino 1Kg)
1005 6.50 10
YOGURT YONO (gr.125x8)
1006 2.00 7
CONFETTURA ZULEGG (gr.700,gusti assortiti)
1007 1.15 3
BIRRA PETRONI (cl.33x3)
1008 0.97 15
CORN FLAKES MELLOGG'S (gr.375)
1009 1.25 1
CODA COLA (lt.1.5)
1010 0.68 3