peste 2 Denunciar mensagem Publicado 23 de Abril de 2010 boas pessoal tudo bem? é o seguinte, vou fazer um programa que ele vai inserir uns codigos que o meu prof deu. tou a fazer no programa free pascal. e tenho o seguinte codigo program recuperacaoimagem; var a,b: text; c:char; pc: string; begin writeln('Qual o computador que quer adicionar'); readln(pc); assign (a,'exper.txt'); reset(a); rewrite(a); while not eof (a) do begin while not eoln(a) do begin read (a,c); if (c='*') then begin writeln(pc); end; end; end; close(a); readln; end. o que eu quero é que ele sempre que encontrar o * ele substituia pelo nome do pc, exemplo pc1. eu penso que o writeln(pc) esteja mal, mas de ficheiro nao percebo muito :bored: e depois da-me este erro no reset Run Time Error 4208419 Error address $0040A144 AJUDEM-ME PLEASE abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 24 de Abril de 2010 Boas! 😎 Pelo que percebi, tens um ficheiro qualquer, de nome exper.txt, criado e já com texto lá dentro inserido, e queres que o programa leia o ficheiro, e sempre que encontrar um '*' o programa o substitua pela string pc. É isto? Para o programa escrever dentro do ficheiro, tens de o mandar fazer exactamente isso, como no READ. Além disso, para não fazer parágrafo, faz só WRITE: write(a,pc); //escrever no texto (ficheiro) 'a' o texto da string 'pc' Quanto ao erro do RESET, ainda estou a ver o que se passa com ele... Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 25 de Abril de 2010 Boas thoga31 tipo o erro no virtual pascal nao parece dar, mas tem que ser no free pascal, foi o prof que mandou, porque é para usar o programa em linux, porque vai ficar ligado a um servidor de imagens. tipo em ficheiros nunca percebi muito, tambem nao dei muita coisa por isso ando mesmo um bokado aos apalpanços. para agora pos isto... program recuperacaoimagem; var a,b: text; c:char; pc: string; begin writeln('Qual o computador que quer adicionar'); readln(pc); assign (a,'exper.txt'); //rewrite(a); reset(a); while not eof (a) do begin while not eoln(a) do begin read (a,c); if (c='*') then begin write(a,pc); end; end; end; close(a); readln; end. pus o rewrite como comentario porque se nao me engano ele vai apagar o conteudo do ficheiro para poder escrever certo)?? achas que o codigo seek da jeito??? desde ja um obrigado =) cumpz Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 25 de Abril de 2010 Boas peste! (lool) 😎 Eu também não percebo muito de ficheiros, mas já ando a desenvolver um programa que vai registando num txt tudo o que se vai passando. Contudo, nunca tinha experimentado substituição de texto nos ficheiros. O melhor que eu sei, neste caso, é fazer o programa ler o ficheiro original e reescreve-lo num novo ficheiro, e aí sim consigo fazê-lo substituir o '*' pela string 'pc'. Não sei se pode ser resolvido desta forma, mas cá deixo o código, de qualquer das formas: program recuperacaoimagem; var a,b: text; c:char; pc: string; begin writeln('Qual o computador que quer adicionar'); readln(pc); assign (a,'exper.txt'); assign (b,'exper_novo.txt'); rewrite(b); reset(a); while NOT eof (a) do begin while NOT eoln(a) do begin read (a,c); if (c='*') then begin write(b,pc); end else begin write(b,c); end; end; end; close(a); close(b); readln; end. Mas vou procurar no meu manual de Pascal mais informações. Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 27 de Abril de 2010 boas thoga e ele consegue alterar o * pela variavel pc? qual o programa do pascal que utilizas-tes? ai que dores de cabeça :wallbash: lololol abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 28 de Abril de 2010 e ele consegue alterar o * pela variavel pc? qual o programa do pascal que utilizas-tes? Boas peste! Utilizei tanto o Free Pascal como o Dev Pascal, e funcionou em ambos os compiladores. Testei, e sim, substituiu o * pela variável pc. Atenção: o ficheiro exper.txt fica inalterado, o exper_novo.txt é que já contem o novo texto, com os * substituídos. Mais dúvidas em concreto, diz Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 28 de Abril de 2010 boas thoga desculpa tar a ser chato lolol mas deu-t algum erro tipo exitcode=2; tens os ficheiros e o programa em alguma pasta especifica?? abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 28 de Abril de 2010 Boas! Não estás a ser chato! Dúvidas são para ser esclarecidas, e estou neste fórum tanto para aprender como para ajudar Esse código significa que o programa tentou aceder ao exper.txt mas não conseguiu porque ele não existia. O RESET implica que o ficheiro já esteja criado! Se o ficheiro não existir, o programa aborta a sua execução. Se criares numa pasta que tenha lá o programa executável um ficheiro exper.txt, com algum texto lá dentro e * e tudo, vais ver que o programa vai criar o exper_novo.txt com as alterações feitas. Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 29 de Abril de 2010 boas thoga a min com o ficheiro na pasta e o programa da-me esse erro tou parado nesse erro vou ver se dou a volta abraço e mais uma vez obrigado Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 29 de Abril de 2010 Boas. Talvez estejas a testar o programa correndo-o a partir do Free Pascal. Experimenta compilar o programa e fechar o Free Pascal. Cria o ficheiro exper.txt com texto lá dentro, mete na mesma pasta o programa final, e executa-o. Normalmente os programas que trabalham com ficheiros não executam os comandos relacionados com eles quando são testados a partir dos compiladores. Talvez seja esse o caso. Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 30 de Abril de 2010 boas ja resolvi o programa vai ficar a correr no fedora, eu depois meto aqui o codigo, e o que faz mesmo, tive foi no fedora de dar permissoes, e de seguida no programa onde tem o nome do ficheiro por o caminho depois vez ja agora um grande obrigado abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 1 de Maio de 2010 De nada! Eu ainda não me iniciei em Linux, mas estava a pensar realmente instalar o Fedora 12, mas dentro em breve vai sair o 13... Como se instala o Fedora? Como é que ele trabalha? Não é como o Windows, que se instala no disco, ou é? Sou mesmo um leigo em Linux, confesso 😳 Sim, depois mete aqui o código, para ver como ficou Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 3 de Maio de 2010 tipo tenho umas imagens de como se instala o fedora, qual e que nao sei se o 11 ou o 12, mas e quase a mesma koisa e porreiro porque é de codigo baerto, podemos "brincar" se kiseres posso arranjar Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 4 de Maio de 2010 Já fiz o download do Fedora 12, e do guia de instalação. Mas acho que o Ubuntu é mais fácil de ser instalado, pelo que já vi... Contudo, entre os dois, acho que serei capaz de preferir Fedora. Se quiseres, eu agradecia as imagens sobre a instalação do Fedora Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 5 de Maio de 2010 boas thoga eu tenho de ver onde as deixei lolol olha da-me aqui uma ajuda lolol program projetoimagem; uses crt; var a,b: text; c:string; pc,proc: string; n,p,i:integer; begin proc:='*'; writeln('Qual o computador que quer adicionar'); readln(pc); assign (a,'C:\Users\Rafael\Desktop\projecto\primeiro.txt'); assign (b,'C:\Users\Rafael\Desktop\projecto\segundo.txt'); reset(a); append(b); while NOT eof(a) do begin while NOT eoln(a) do begin read (a,c); writeln(c); n:=length(c); writeln(n); for i:=1 to n do begin if (c[i]='*') then begin p:=pos('*',c); writeln(p); delete(c,p,1); insert(pc,c,p); writeln(c); readln; end; writeln('222'); end; writeln('555'); write(b,c); append(b); end; writeln ('777'); readln; end; writeln('888'); readln; close(a); close(b); readln; end. ele par-me sempre onde dix writeln (777) tipo ta sempre a escrever o 777 lolol e nao acaba o programa depois de tar tudo feito neste programa, eu tenho que fazer um relatorio e depois mando.t tambem abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 11 de Maio de 2010 boas thoga, tudo bem? ja soluccionei o problema, pus so eoln, para agora o programa esta assim program projetoimagem; uses crt, dos; var a,b: text; c:string; d,e:text; f:string[255]; pc: string; n,p,i,j,op:integer; begin repeat writeln('Qual o computador que quer adicionar'); readln(pc); assign (a,'C:\Users\Rafael\Desktop\projecto\primeiro.txt'); assign (b,'C:\Users\Rafael\Desktop\projecto\segundo.txt'); assign (d,'C:\Users\Rafael\Desktop\projecto\terceiro.txt'); assign (e,'C:\Users\Rafael\Desktop\projecto\quarto.txt'); reset(a); append(b); reset(d); append(e); exec('C:\command.com','mkdir C:\Users\Rafael\Desktop\projecto\script');//acho que e este o codigo, mas ele nao me cria //******************************************************************** while NOT eoln(a) do begin readln (a,c); n:=length(c); for i:=1 to n do begin if (c[i]='*') then begin p:=pos('*',c); delete(c,p,1); insert(pc,c,p); end; end; writeln(b,c); append(b); end; //******************************************************************** while NOT eof(d) do begin readln (d,f); n:=length(f); for i:=1 to n do begin if (f[i]='*') then begin p:=pos('*',f); delete(f,p,1); insert(pc,f,p); end; end; writeln(e,f); append(e); end; //******************************************************************** close(a); close(b); close(d); close(e); writeln('Deseja inserir MAIS algum pc? se sim introduza o numero 0'); readln(op); until (op=0); writeln('Prima ENTER para sair'); readln; end. aproveito ja t ponho aqui o link das imagens da instalaçao do fedora 11 http://img514.imageshack.us/g/36409356.jpg/ http://img514.imageshack.us/slideshow/webplayer.php?id=36409356.jpg agora a minha duvida lolo 😳 é o seguinte quero criar directorias no pascal, sei que tenho que usar o uses dos mas como é que faço o codigo ja agora obrigado pela imensa ajuda que tens dado abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
thoga31 610 Denunciar mensagem Publicado 15 de Maio de 2010 Boas peste! 😎 Desculpa não ter respondido mais cedo, mas tenho andado cheio de testes e trabalhos... Vou analisar com mais cuidado, quando tiver mais tempo, este último código. Confesso que nunca tinha visto o comando exec, mas vou estudar mais sobre ele. Exactamente o que queres que o programa em Pascal faça em relação a directórios? Queres que o programa crie pastas? Se for isso, terás de me dar algum tempo, se não te importares, para eu poder estudar isso com o devido cuidado com que gosto de estudar. Já agora, obrigado pelas imagens, dentro em breve vou experimentar instalar o Fedora. Cumpz. Knowledge is free! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 16 de Maio de 2010 boas thoga na boa menino, primeiro trata das tuas cenas ya o que eu quero é que ele crie pastas. e so trabalho k o meu prof da lolol kando souberes alguma koisa dix, eu vou tentando abraço Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
peste 2 Denunciar mensagem Publicado 11 de Julho de 2010 boas thoga, como t prometi kuando tivexe ele feito mandava para aqui o programa graças a este programa tirei 19 na PAT. program projetoimagem; uses crt, dos; var a,b: text; c:string; d,e:text; f:string; k,m:text; o:string; s,q:text; r:string; pc,comc,comr,comm,com1,com2,com3,com4:string; n,p,i,op:integer; begin repeat writeln('Qual o computador ou sala que quer adicionar'); readln(pc); assign (a,'/tftpboot/ficheirosaux/pxeboot.msg.conf'); assign (b,'/tftpboot/pxeboot.msg'); assign (d,'/tftpboot/ficheirosaux/default.conf'); assign (e,'/tftpboot/pxelinux.cfg/default.conf'); reset(a); append(b); reset(d); append(e); com1:='/tftpboot/script/script_'; com2:='_criar'; com3:='_recuperar'; com4:='/mnt/samba/partilha/'; comc:=com1+pc+com2; comr:=com1+pc+com3; comm:=com4+pc; MkDir(comc); MkDir(comr); MkDir(comm); writeln('Adicione agora as permissoes a pasta com o seguinte comando'); writeln('chmod 777 /tftpboot/script/ -R'); writeln('Depois de terminado prima enter'); readln; assign (k,'/tftpboot/ficheirosaux/autorun.criar'); reset(k); assign (m,'/tftpboot/script/script_'+pc+'_criar/autorun'); rewrite(m); assign (s,'/tftpboot/ficheirosaux/autorun.recuperar'); reset(s); assign (q,'/tftpboot/script/script_'+pc+'_recuperar/autorun'); rewrite(q); //******************************************************************** while NOT eoln(a) do begin readln (a,c); n:=length(c); for i:=1 to n do begin if (c[i]='*') then begin p:=pos('*',c); delete(c,p,1); insert(pc,c,p); end; end; writeln(b,c); append(b); end; //******************************************************************** while NOT eof(d) do begin readln (d,f); n:=length(f); for i:=1 to n do begin if (f[i]='*') then begin p:=pos('*',f); delete(f,p,1); insert(pc,f,p); end; end; writeln(e,f); append(e); end; //******************************************************************** while NOT eof(k) do begin readln (k,o); n:=length(o); for i:=1 to n do begin if (o[i]='*') then begin p:=pos('*',o); delete(o,p,1); insert(pc,o,p); end; end; writeln(m,o); append(m); end; //******************************************************************* while NOT eof(s) do begin readln (s,r); n:=length(r); for i:=1 to n do begin if (r[i]='*') then begin p:=pos('*',r); delete(r,p,1); insert(pc,r,p); end; end; writeln(q,r); append(q); end; //****************************************************************** close(a); close(b); close(d); close(e); close(k); close(m); close(s); close(q); writeln('Deseja inserir MAIS algum pc? se não introduza o numero 0, se sim insira um numero diferente de 0'); readln(op); until (op=0); writeln('Prima ENTER para sair'); readln; end. tem haver com o servidor PXE, servidor samba de reposiçao de imagens. A finalidade dele é evitar a configuração manual dos ficheiros do servidor de PXE. Assim evita-se que a inserção de um novo computador no servidor seja realizada manualmente e previne a falha de alguma inserção de dados errada. O programa faz automaticamente que um dado computador possa realizar uma imagem e posteriormente seja possível realizar a respectiva reposição de imagem. Para que se possa realizar uma cópia e uma reposição de um novo PC para o servidor de imagens, é necessário realizar as seguintes configurações nos : a) Alterar os seguintes ficheiros: /tftpboot/pxeboot.msg o ficheiro ”pxeboot.msg” contém o menu de arranque com instruções. Quando se pretende fazer uma imagem ou repor uma imagem num PC, este menu surge a indicar qual a opção que deve seleccionar. /tftpboot/pxelinux.cfg/default Ficheiro ”default” que contém a configuração de Arranque dos Clientes /tftpboot/script/script_pcnumero_copiar/autorun Ficheiro “autorun” que monta localmente a pasta partilhada pelo servidor nos PC’s Clientes e faz a cópia das partições do PC e guardo no servidor /tftpboot/script/script_pcnumero_recuperar/autorun Ficheiro “autorun” que monta localmente a pasta partilhada pelo servidor nos PC’s Clientes e repõem as partições para o PC a partir das imagens guardadas no servidor. b) Criar as seguintes directorias: /tftpboot/script/script_pcnumero_copiar pasta que contém o ficheiro “autorun”. Têm que existir uma pasta “copiar” por cada imagem diferente. /tftpboot/script/script_pcnumero_recuperar pasta que contém o ficheiro “autorun”. Têm que existir uma pasta “recuperar” por cada imagem diferente. /mnt/partilha/pcnumero -> pasta onde será guardada a imagem do PC. Quando se dá ordem de reposição de uma imagem o sistema vem a esta pasta buscar a imagem para repor no pc. Nome do programa: program projetoimagem; É o nome de programa. Bibliotecas: uses crt, dos; São bibliotecas que se pode adicionar no programa, a biblioteca crt serve garantir o funcionamento das funções Read(ln) e Write(ln). Em certos compiladores essa biblioteca já é integrada previamente, não precisando declara-la. A biblioteca dos é para usar comandos do MS-DOS ou Unix. Declaração de variáveis para os ficheiros: var a,b: text; c:string; d,e:text; f:string; k,m:text; o:string; s,q:text; r:string; Estas variáveis que são do tipo text, que irão servir para manipular os ficheiros. As variáveis a, d, k e s, irão conter a informação dos ficheiros originais, e as variáveis b, e, m e q irão conter a informação que já alterada, que depois irá adicionar conteudo nos ficheiros que já estão criados, ou que irão ser criados. As variáveis c, f, o e r, que são do tipo string, irão ter a função de ler o ficheiro carácter a carácter, e ai já vão alterar o asterisco (*), para o nome do pc ou sala. Declaração de variáveis para os comandos e do pc que vai ser inserido: pc,comc,comr,comm,com1,com2,com3,com4:string; Estas variáveis do tipo string vão ter funções quase iguais, só muda o conteúdo. As variáveis comc, comm, comcr, com1, com2, com3, com4 servem para a parte do programa que vai criar as directorias. A variável pc irá conter a informação introduzida pelo utilizador, do pc ou da sala que vai ser neste programa a variável “principal”, porque é ela que vai definir as configurações dos ficheiros. Declaração de variáveis inteiras: n,p,i,op:integer; Estas três variáveis n, p e i, do tipo inteiro irão ser utilizadas na manipulação de ficheiros, e a variável op irá servir para o utilizador confirmar se quer sair do programa, ou continuar a introduzir pcs ou salas. Inicio do programa: begin É aqui que começa o programa em si. Ciclo de repetição: repeat Está instrução serve para o que tiver dentro dela, ir repetindo ate que a opção se um valor predefinido, neste caso ate que seja 0. Introdução do pc ou sala: writeln('Qual o computador ou sala que quer adicionar'); readln(pc); Nestas instruções vai ser apresentada a mensagem ao utilizador para ele adicionar o computador ou a sala que deseja. Associação dos ficheiros as variáveis: assign (a,'/tftpboot/ficheirosaux/pxeboot.msg.conf'); assign (b,'/tftpboot/pxeboot.msg'); assign (d,'/tftpboot/ficheirosaux/default.conf'); assign (e,'/tftpboot/pxelinux.cfg/default.conf'); reset(a); append(b); reset(d); append(e); Nas primeiras 4 linhas o programa associa os ficheiros originais e os ficheiros que irão ser alterados. O conteúdo dos ficheiros originais vai ficar nas variáveis a e c, onde o reset vai permitir a leitura dos conteúdo. No append serve para depois ser adicionado no final do ficheiros a conteúdo dos ficheiros originais com o asterisco (*) alterado pela variável pc. Criação das directorias: com1:='/tftpboot/script/script_'; com2:='_criar'; com3:='_recuperar'; com4:='/mnt/samba/partilha/'; comc:=com1+pc+com2; comr:=com1+pc+com3; comm:=com4+pc; MkDir(comc); MkDir(comr); MkDir(comm); As variáveis com1, com2, com3, com4, já têm um valor predefinido. Mas as variáveis comc, comr, comm, vão ser a junção das outras variáveis. A instrução MkDir vai criar as directorias que estão nas strings comc, comr, comm. Por exemplo, no MkDir(comm); ele vai criar a directoria /mnt/samba/partilha/pcteste. Permissões: writeln('Adicione agora as permissoes a pasta com o seguinte comando'); writeln('chmod 777 /tftpboot/script/ -R'); writeln('Depois de terminado prima enter'); readln; Está parte do programa é muito essencial, devido, as permissões que temos de adicionar para o programa poder adicionar os ficheiros nas pastas que foram criadas na pasta script. Normalmente só deve ser preciso adicionar na primeira vez que compilamos o programa, depois já deve funcionar mas sem ser preciso adicionar os ficheiros. O readln pára o programa até o utilizador carregar a tecla ENTER para poder continuar. Associação de ficheiros as variáveis: assign (k,'/tftpboot/ficheirosaux/autorun.criar'); reset(k); assign (m,'/tftpboot/script/script_'+pc+'_criar/autorun'); rewrite(m); assign (s,'/tftpboot/ficheirosaux/autorun.recuperar'); reset(s); assign (q,'/tftpboot/script/script_'+pc+'_recuperar/autorun'); rewrite(q); Esta associação de ficheiros as variáveis, é igual a anterior, só com a diferença de, em vez de existir o comando append, existe o comando rewrite. As variáveis k e s, irão conter o conteúdo dos ficheiros originais. Já as variáveis m e q irão adicionar o contudo dos ficheiros originais nos ficheiros criados Alteração dos ficheiros: //******************************************************************** while NOT eoln(a) do begin readln (a,c); n:=length(c); for i:=1 to n do begin if (c[i]='*') then begin p:=pos('*',c); delete(c,p,1); insert(pc,c,p); end; end; writeln(b,c); append(b); end; //******************************************************************** while NOT eof(d) do begin readln (d,f); n:=length(f); for i:=1 to n do begin if (f[i]='*') then begin p:=pos('*',f); delete(f,p,1); insert(pc,f,p); end; end; writeln(e,f); append(e); end; //******************************************************************** while NOT eof(k) do begin readln (k,o); n:=length(o); for i:=1 to n do begin if (o[i]='*') then begin p:=pos('*',o); delete(o,p,1); insert(pc,o,p); end; end; writeln(m,o); append(m); end; //******************************************************************* while NOT eof(s) do begin readln (s,r); n:=length®; for i:=1 to n do begin if (r[i]='*') then begin p:=pos('*',r); delete(r,p,1); insert(pc,r,p); end; end; writeln(q,r); append(q); end; //****************************************************************** Aqui é onde se vai dar a cópia, e alterações dos ficheiros. A instrução while NOT eoln(a) do, vai ser um ciclo de repetição que vai percorrer a variável a até que seja fim de linha. Nas outras usei while NOT eof(a) do, devido ao conteúdo do ficheiro, porque era maior que o da variável a. Vai na mesma ocorrer o ciclo de repetição, só que em vez ser só até ao fim de linha, vai ser até ao fim do ficheiro, e vai ocupar mais memória. O readln, indica o ficheiro de onde os dados são lidos. O length, indica o tamanho do ficheiro. Depois existe um ciclo de repetição, e dentro desse ciclo ele vai procurar o asterisco (*), e depois altera-o para o conteúdo da variável pc. O pos, indica a posição do asterisco (*) e fica guardado na variável p. O delete, apaga um valor na posição p. O insert, vai inserir o conteúdo da variável pc, na posição p. O writeln, indica o ficheiro onde os resultados vão ser escritos. Depois o append vai inserir no final do ficheiro o conteúdo que está na variável c. Fechar os ficheiros: close(a); close(b); close(d); close(e); close(k); close(m); close(s); close(q); O comando close serve para encerrar os ficheiros que foram abertos anteriormente. Confirmação para sair: writeln(‘Deseja inserir MAIS algum pc? se não introduza o numero 0, se sim insira um numero diferente de 0’); readln(op); until (op=0); writeln('Prima ENTER para sair'); readln; Aqui é apresentado ao utilizador a mensagem, que se deseja sair, para introduzir o número 0, se não introduz outro número. Depois o comando until (op=0), é para encerrar o ciclo de repetição repeat que esta no inicio do programa. Só quando o número introduzido pelo utilizador for 0, o ciclo de repetição é encerrado. Depois aparece uma mensagem para carregar no ENTER para podermos sair do programa. O readln serve para dar uma pausa no programa, e para apresentar a mensagem final, porque as vezes existe mensagens, que antes de acabar o programa não são apresentadas, e com o readln já são impridas. Fim do programa: end. Encerra o programa principal. No programa elaborado no Free Pascal não ficou todo completo, quer dizer, ele faz o que foi pedido, que era modificar os ficheiros e criar directorias, mas com um bocadinho mais de tempo e mais alguma procura de informação podia ter um ambiente gráfico, no qual podia-se usar o Lazarus, que utiliza o Free Pascal como compilador. Também podia conter um menu para poder apagar o computador ou sala adicionados, e assim apagava as directorias e linhas dos ficheiros que foram adicionados aos ficheiros. ja agoa um muito obrigado thoga, ajusdas-te bues abraço.... Ta demais o bar da praia maninho, sempre a PROGRAMAR em hard techo hehehehe Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites