Fórum # Como Alterar Arquivo Texto? #178439

29/08/2003

0

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]


Fer

Fer

Responder

Posts

29/08/2003

Marconi

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


Responder

Gostei + 0

29/08/2003

Marconi

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


Responder

Gostei + 0

29/08/2003

Afarias

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+


Responder

Gostei + 0

29/08/2003

Bacalhau

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


Responder

Gostei + 0

29/08/2003

Wbb

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar