Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Pascal] Help su record

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    127
    perchè non provi a farlo eseguire "step-by-step"?

    Così vedi se effettivamente il file viene processato oppure no!

  3. #3
    L'ho fatto, pare che legga solo il primo prodotto, poi il programma termina, come se non riesce a leggere le informazioni successive.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    127
    READLN (testo, prodotti.descrizione [i]);
    read (testo, prodotti.codice [i]);
    read (testo, prodotti.prezzo [i]);
    read (testo, prodotti.giacenza [i])

    probabilmente l'errore è qui o nel modo in cui hai scritto le descrizioni...
    cmq per toglierti il dubbio, prova a far scrivere IMMEDIATAMENTE quello che viene letto dal file, questo potrebbe darti maggiori informazioni

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.