Newsgroup: it.comp.lang.pascal
Titolo: Problema con questo programma

Sto creando (per motivi di studio) un gestionale di magazzino che mi sta
dando qualche problema: sembra che non vada bene la function Fnome, ma, se
non sbglio, č corretta.
Mi potete aiutare?
Rispondete pure a 
fci...@dada.it
, se potete.
Ecco il programma:
Program GestMag3;
uses
    Dos;  (*necessario per la function FSearch*)
type
    ProdMag=^Tipoprodotto;
    TipoProdotto=record
                       Nome:string;
                       Quantita:longint;
                       Prezzo:longint;
                       Next:ProdMag;
                       end;
    TipoMagazzino=file of ProdMag;
var
   start,prod:ProdMag;
   F:PathStr;
   magazzino:TipoMagazzino;
   FileTrovato:boolean;
function Fnome:string;                     (*chiede il nome del prod*)
         var
            nome:string;
         begin
         writeln('Nome del prodotto?');
         readln(nome);
         Fnome:=nome;
         end;
function Fquantita:longint;                (*chiede la quantita di prod*)
         var
            quantita:longint;
         begin
         writeln('Quantita?');
         readln(quantita);
         Fquantita:=quantita;
         end;
function Fprezzo:longint;                  (*chiede il prezzo unitario*)
         var
            prezzo:longint;
         begin
         writeln('Prezzo unitario?');
         readln(prezzo);
         Fprezzo:=prezzo;
         end;
procedure InsProd;        (*crea o aumenta un prodotto nel magazzino*)
          function NewProd(nome:string):ProdMag;
                   begin
                   new(prod);
                   prod^.Nome:=nome;
                   prod^.Quantita:=Fquantita;
                   prod^.Prezzo:=Fprezzo;
                   NewProd:=prod;
                   end;
          function SearchNome(prod:ProdMag;nome:string):ProdMag;
(*cerca il prod tra quelli nel magazzino*)
                   begin
                   if nome=prod^.Nome then
                                          SearchNome:=prod
                                          else
                                          if prod^.Next<>nil then begin
prod:=prod^.next;
SearchNome:=SearchNome(prod,nome)
                                                                  end
                                                             else begin
(*se inesistente lo crea con NewProd*)
prod:=NewProd(nome)
                                                                  end;
                   end;
          var
             nome:string;
             quantita:longint;
             prezzo:longint;
          begin
          nome:=Fnome;
          SearchNome(prod,nome);
          if start^.Nome=Nome then
start^.Quantita:=start^.Quantita+Quantita;
          end;
procedure RicProd;
          begin
          end;
procedure Esci;
          begin
          Halt;
          end;
procedure ScegliAzione(esiste:boolean);
          var
             azione:word;
          begin
          writeln;
          writeln('Segli azione da effettuare:');
          writeln;
          writeln;
          writeln('1)Inserisci prodotto');
          if esiste=true then begin
                               writeln('2)Ricerca prodotto');
                               end;
          writeln('3)Salva su disco ed esci');
          writeln;
          read(azione);
          case azione of
               1:InsProd;
               2:RicProd;
               3:Esci;
               else
               writeln('Selezione non valida: scegliere 1, 2, 3');
               ScegliAzione(FileTrovato);
               end;
          ScegliAzione(FileTrovato);
          end;
begin
assign (magazzino,'magazz.dat');
F:=Fsearch('magazz.dat',GetEnv('PATH'));    (*controlla se il file č
presente*)
if F='' then begin
             FileTrovato:=false;
             new(start);
             start:=nil;
             ScegliAzione(FileTrovato);
             end
        else begin
             FileTrovato:=true;
             ScegliAzione(Filetrovato);
             end;
end.
Grazie!

     TipoMagazzino=file of ProdMag;
----------------------------TipoProdotto; !!!
:-) Franz Glaser, Austria

Grazie, ma l' avevo giŕ corretto.
Il vero problema rimane fNome: mi chiede il nome ma non me lo fa scrivere.
