# Como Alterar Arquivo Texto?
Boa tarde
Tenho um arquivo texto e preciso conforme um variavel(contador) que possue o numero da linha ir até essa linha e alterar o conteudo dela, mas estou com problemas. tenho o codigo abaixo.
AssignFile(arqTextoPDV,´PDVITEM.log´);
Reset(arqTextoPDV);
for cont:=1 to DM.IbPdvItem.RecNo do
readln(arqTextoPDV);
reWrite(arqTextoPDV,´ TEXTO ALTERADO ´);
closefile(arqTextoPDV);
Bom ele não dá erro, mas tb não altera a linha, posiciona eu sei que ele posiciona na linha certa. Se eu utilizar o [b:499761facb]Write[/b:499761facb] no lugar de [b:499761facb]reWrite[/b:499761facb] da erro I/O 104 como se não tivesse em edição .... alguém pode me ajudar?
Valeu[/b]
Tenho um arquivo texto e preciso conforme um variavel(contador) que possue o numero da linha ir até essa linha e alterar o conteudo dela, mas estou com problemas. tenho o codigo abaixo.
AssignFile(arqTextoPDV,´PDVITEM.log´);
Reset(arqTextoPDV);
for cont:=1 to DM.IbPdvItem.RecNo do
readln(arqTextoPDV);
reWrite(arqTextoPDV,´ TEXTO ALTERADO ´);
closefile(arqTextoPDV);
Bom ele não dá erro, mas tb não altera a linha, posiciona eu sei que ele posiciona na linha certa. Se eu utilizar o [b:499761facb]Write[/b:499761facb] no lugar de [b:499761facb]reWrite[/b:499761facb] da erro I/O 104 como se não tivesse em edição .... alguém pode me ajudar?
Valeu[/b]
Fer
Curtidas 0
Respostas
Marconi
29/08/2003
Não seria mais fácil voce carregar todo o arquivo texto para uma StringList, mudar o que quiser e depois grava-lo inteiro ?
Marconi
Marconi
GOSTEI 0
Marconi
29/08/2003
O comando RESET abre o arquivo para leitura, enquanto o comando REWRITE cria um arquivo para gravação, apagando o que já existir.
Voce deve utilizar o comando WRITELN(arqTextoPDV,´Nova Linha´);
Marconi
Voce deve utilizar o comando WRITELN(arqTextoPDV,´Nova Linha´);
Marconi
GOSTEI 0
Afarias
29/08/2003
Para arquivos TEXTO (TextFile) reset sempre retorna como READ-ONLY. E, vc não pode usar o REWRITE como está tentando (rewrite sobrescreve o arquivo - cria um novo - e é usado semelhante ao RESET).
Vc provavelmente deverá usar o APPEND(F) para escrever no arquivo, más, dependendo do q pretente fazer, usar StringLists é menos eficiente más bem mais prático.
T+
Vc provavelmente deverá usar o APPEND(F) para escrever no arquivo, más, dependendo do q pretente fazer, usar StringLists é menos eficiente más bem mais prático.
T+
GOSTEI 0
Bacalhau
29/08/2003
Não dá. O reset e o rewrite excluem-se mutuamente. Ou abres para escrita ou abres para leitura. A excepção é o comando append, mas este adiciona informação no fim do ficheiro, não no meio.
Há que fazer reset, transportar o conteúdo para um local temporário, fecha, modificar o que pretendes e só no fim fazer rewrite a escrever a informação modificada (uuufa).
Quando ao modo, as sugestões anteriores dizem como fazê-lo
Há que fazer reset, transportar o conteúdo para um local temporário, fecha, modificar o que pretendes e só no fim fazer rewrite a escrever a informação modificada (uuufa).
Quando ao modo, as sugestões anteriores dizem como fazê-lo
GOSTEI 0
Wbb
29/08/2003
Caro colega,
Apenas abra o arquivo e leia seu conteúdo verificando linha a linha o que você procura, carregando-as em uma variável (Ex.: ArqTexto). Encontrada a linha no meio do processo de leitura, modifique-a antes de adicioná-la na variável ArqTexto, e em seguida continue o processo de leitura até o final.
Terminando a leitura, simplesmente grave o conteúdo da variável ArqTexto no mesmo arquivo, sobrescrevendo tudo. Assim todo o conteúdo do arquivo continuará sendo o mesmo, exceto aquela linha que você alterou.
Pode não ser a maneira mais rápida, mas resolve seu problema e você nem precisa saber o número da linha.
Até mais.
wbb
Apenas abra o arquivo e leia seu conteúdo verificando linha a linha o que você procura, carregando-as em uma variável (Ex.: ArqTexto). Encontrada a linha no meio do processo de leitura, modifique-a antes de adicioná-la na variável ArqTexto, e em seguida continue o processo de leitura até o final.
Terminando a leitura, simplesmente grave o conteúdo da variável ArqTexto no mesmo arquivo, sobrescrevendo tudo. Assim todo o conteúdo do arquivo continuará sendo o mesmo, exceto aquela linha que você alterou.
Pode não ser a maneira mais rápida, mas resolve seu problema e você nem precisa saber o número da linha.
Até mais.
wbb
GOSTEI 0