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

    [pascal] lettura da un file di testo

    dato un file di testo scritto cosi:

    Lavabagno
    0001 12.34 10
    Dentifricio
    0002 1.20 21
    Sapone liquido
    0003 2.32 10
    lavapiatti
    0004 1.57 20
    bagnoschiuma
    0005 1.23 15
    devo creare un programma che leggi i dati del file e li mette in un record

    codice:
    Program giacenza;
    type
    codprodotto=0001..9999;
    Prodotti =RECORD
              merce:string;
              codice:codprodotto;
              prezzo:real;
              Giacenza:integer;
              END;
    
    Var
    prodotto:array [1..100] of prodotti;
    I:Integer;                      (*contatore*)
    txtmagazzino:text;              (*File di testo*)
    
    BEGIN
     Assign (txtmagazzino,'c:\miei\esercizi\magazzino.txt');    
    reset (txtmagazzino);
     I:=0;                           (*poniamo I=1*)
    while not eof(txtmagazzino) do 
    begin
    readln(txtmagazzino, prodotto[i].merce) ;
    readln(txtmagazzino, prodotto[i].codice, prodotto[i].prezzo, prodotto[i].giacenza);
    I:=I+1;                                (*incrementiamo I*)
    end;
    close(txtmagazzino);
    end.
    in questo modo il programma mi legge solo le prime due righe del file di testo le altre no. Dove avro sbagliato

  2. #2

  3. #3
    codice:
    Program giacenza;
    type
    codprodotto=0001..9999;
    Prodotti = RECORD
              merce:string;
              codice:codprodotto;
              prezzo:real;
              Giacenza:integer;
              END;
    
    Var
    prodotto:array [1..100] of prodotti;
    I:Integer;                      (*contatore*)
    txtmagazzino:text;              (*File di testo*)
    
    BEGIN
     Assign  (txtmagazzino,'c:\miei\esercizi\magazzin
    o.txt');    
    reset (txtmagazzino);
     I:=0;                           (*poniamo I=1*)
    while not eof(txtmagazzino) do 
    begin
    readln(txtmagazzino, prodotto[i].merce);
    read(txtmagazzino, prodotto[i].codice);
    readln(txtmagazzino, prodotto[i].prezzo);
    readln(txtmagazzino, prodotto[i].giacenza);
    I:=I+1;                                (*incrementiamo I*)
    end;
    close(txtmagazzino);
    end.
    prova così dovrebbe andare, probabilmente è questione del comando readln e read.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.