fed07 0 Posted January 4, 2009 Report Share Posted January 4, 2009 Boas pessoal, então é assim eu tou a fazer um programa em pascal para avaliação de nota, o programa consiste em uma base de dados para uma oficina. Mas como nem tudo na vida são rosas estou com um grande problema e nao sei mesmo o que fazer lol... No programa existe uma opção que é a de criar um novo cliente, nessa opção metemos os dados e ele deveria de guardar esses mesmo dados num ficheiro, coisa que nao acontece e eu nao sei porque :wallbash:, vou colocar aqui parte do código onde eu penso que esteja o erro, se conseguirem ajudar agradecia thkz! PS: o programa corre bem, utilizava o turbo pascal e agora o free pascal (caso desaconselhem digam) program oficina; uses crt; type cliente = RECORD Nome : string; Idade : integer; Morada : string; Contacto : longint; Modelo : string; {do carro} Marca : string; {do carro} revisao : string; matricula : string; BI : string; NIF : string; chasis : string; end; var opcao : char; info_cliente,backup : file of cliente; password, nome_cliente : string; cliaux : cliente; {esta função aqui para quem nao percebe, o que faz é criar o ficheiro caso ele nao exista, se existir simplesmente o abre para leitura. talvez esteja aqui o erro?¿} function Ini : integer; begin clrscr; assign(info_cliente,'C:\cliente.bin'); {$I-} reset(info_cliente); {$I+} if IOResult <> 0 THEN begin rewrite(info_cliente); close(info_cliente); end; end; procedure novo; {criar novo cliente} var fileaux : text; path,mat,ext : string; begin clrscr; reset(info_cliente); {aqui pede os dados para a criação de um novo cliente} Writeln('Insira o nome do cliente'); readln(cliaux.nome); writeln('Insira a idade do cliente'); readln(cliaux.idade); writeln('Insira a morada do cliente'); readln(cliaux.morada); writeln('Insira o contacto do cliente'); readln(cliaux.contacto); writeln('Insira o número de BI'); readln(cliaux.bi); writeln('Insira o número de NIF'); readln(cliaux.nif); writeln('Insira a data de revisão do veículo em dd/mm/aa'); readln(cliaux.revisao); writeln('Insira a marca do veículo do cliente'); readln(cliaux.marca); writeln('Insira o modelo do veículo do cliente'); readln(cliaux.modelo); writeln('Insira a matricula do veículo no formato XX-XX-XX'); readln(cliaux.matricula); writeln('Insira o número de chasis do veículo'); readln(cliaux.chasis); {esta variavel path é apenas para criar o nome do caminho do ficheiro} path:='C:\Rep\'; mat:=cliaux.matricula; ext:='.txt'; path:=path+mat+ext; {este fileaux é para criar um ficheiro de texto onde se escreve as reparações do carro, nao tá aqui essa parte do código, mas isto também nao deve ser o problema} assign(Fileaux,path); rewrite(Fileaux); {cria o ficheiro de texto} close(Fileaux); {isto aqui supostamente deveria passar os dados da variavel cliaux para o ficheiro do tipo cliente..} while not eof(info_cliente) do begin write(info_cliente,cliaux); close(info_cliente); end; end; Link to post Share on other sites
vasco16 0 Posted January 4, 2009 Report Share Posted January 4, 2009 Boas pessoal, então é assim eu tou a fazer um programa em pascal para avaliação de nota, o programa consiste em uma base de dados para uma oficina. Mas como nem tudo na vida são rosas estou com um grande problema e nao sei mesmo o que fazer lol... No programa existe uma opção que é a de criar um novo cliente, nessa opção metemos os dados e ele deveria de guardar esses mesmo dados num ficheiro, coisa que nao acontece e eu nao sei porque :wallbash:, vou colocar aqui parte do código onde eu penso que esteja o erro, se conseguirem ajudar agradecia thkz! PS: o programa corre bem, utilizava o turbo pascal e agora o free pascal (caso desaconselhem digam) program oficina; uses crt; type cliente = RECORD Nome : string; Idade : integer; Morada : string; Contacto : longint; Modelo : string; {do carro} Marca : string; {do carro} revisao : string; matricula : string; BI : string; NIF : string; chasis : string; end; var opcao : char; info_cliente,backup : file of cliente; password, nome_cliente : string; cliaux : cliente; {esta função aqui para quem nao percebe, o que faz é criar o ficheiro caso ele nao exista, se existir simplesmente o abre para leitura. talvez esteja aqui o erro?¿} function Ini : integer; begin clrscr; assign(info_cliente,'C:\cliente.bin'); {$I-} reset(info_cliente); {$I+} if IOResult <> 0 THEN begin rewrite(info_cliente); close(info_cliente); end; end; procedure novo; {criar novo cliente} var fileaux : text; path,mat,ext : string; begin clrscr; reset(info_cliente); {aqui pede os dados para a criação de um novo cliente} Writeln('Insira o nome do cliente'); readln(cliaux.nome); writeln('Insira a idade do cliente'); readln(cliaux.idade); writeln('Insira a morada do cliente'); readln(cliaux.morada); writeln('Insira o contacto do cliente'); readln(cliaux.contacto); writeln('Insira o número de BI'); readln(cliaux.bi); writeln('Insira o número de NIF'); readln(cliaux.nif); writeln('Insira a data de revisão do veículo em dd/mm/aa'); readln(cliaux.revisao); writeln('Insira a marca do veículo do cliente'); readln(cliaux.marca); writeln('Insira o modelo do veículo do cliente'); readln(cliaux.modelo); writeln('Insira a matricula do veículo no formato XX-XX-XX'); readln(cliaux.matricula); writeln('Insira o número de chasis do veículo'); readln(cliaux.chasis); {esta variavel path é apenas para criar o nome do caminho do ficheiro} path:='C:\Rep\'; mat:=cliaux.matricula; ext:='.txt'; path:=path+mat+ext; {este fileaux é para criar um ficheiro de texto onde se escreve as reparações do carro, nao tá aqui essa parte do código, mas isto também nao deve ser o problema} assign(Fileaux,path); rewrite(Fileaux); {cria o ficheiro de texto} close(Fileaux); {isto aqui supostamente deveria passar os dados da variavel cliaux para o ficheiro do tipo cliente..} while not eof(info_cliente) do begin write(info_cliente,cliaux); close(info_cliente); end; end; Exprimenta criar um ficheiro manualmente da directoria onde queres guardar os dados.. para ver se ele manda para lá os dados.. Link to post Share on other sites
fed07 0 Posted January 4, 2009 Author Report Share Posted January 4, 2009 ele cria o ficheiro para guardar os dados, o problema é que nao guarda lá nada, nao consigo perceber msm o problema... 🤔 Link to post Share on other sites
M6 149 Posted January 5, 2009 Report Share Posted January 5, 2009 Creio que estás a fechar o ficheiro antes da escrita. O comando close(Fileaux); deve estar depois de escreveres os dados no ficheiro. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
fed07 0 Posted January 9, 2009 Author Report Share Posted January 9, 2009 era esse mesmo o problema! xD brigado Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now