Fórum Percorrer arquivo texto #327519

16/08/2006

0

Como faço para percorrer um arquivo texto? Tenho um arquivo XML, e preciso dar uma espécie de NOT ARQUIVO.EOF, e trocar o valor de um campo do tipo Integer para String, usando StringReplace. Como faço para percorrer todo o arquivo até o fim, dentro de um laço ou algo parecido, com uma variável do tipo TEXTFILE? Grato desde já.


Paulo

Paulo

Responder

Posts

16/08/2006

Marco Salles

porque voce não usa um ClientDataSet Para Isto ????

geralmente alogica é

cds1 -->>> arquivo xml original
cds2 -->>> definir os Tfield que voce quer
percorrer o cds na estrutura while not eof
carregar os valores de cd2
no final salve este arquivo do cds2 em cima do arquivo de leitura do cds1

Aqui um exemplo com dois campo aonde incialmente o campo Matricula estava definido como inteiro...

procedure TForm1.Button1Click(Sender: TObject);
begin
cds1.First;
while not cds1.Eof do
  begin
    cds2.Append;
    cds2Nome.AsString:=cds1Nome.AsString;
     cds2Matricula.AsString:=cds2Matricula.AsString;
     cds2.Post;
     cds1.Next;
  end;
  cds2.SaveToFile(´C:\podeApagarUrgenteja2\podeapagar.xml´,dfXML);
end;


espero que tenha ajudado..


Responder

Gostei + 0

16/08/2006

Paulo

Fiz assim:

procedure TForm1.BitBtn1Click(Sender: TObject); var nvo : TStringlist; s,caminho : String; i : Integer; begin caminho := ´C:\Remedio\TabelaRemedio.xml´; nvo := TStringList.Create; nvo.loadFromfile(caminho); for i := 0 to nvo.count-1 do begin s := nvo[i]; StringReplace(s,´´integer´´,´´string´ WIDTH=´9´´,[rfReplaceAll]); nvo[i] := s; end; nvo.saveToFile(caminho); FreeAndNil(nvo); end;

Só que não tá funcionando com o StringReplace. O que pode ser? No aguardo, grato!!!


Responder

Gostei + 0

16/08/2006

Marco Salles

paulo a resposta que eu lhe forneci foi baseada no seu outro tópico

http://forum.clubedelphi.net/viewtopic.php?t=79907

Tenho um arquivo XML. [b:307119e514]Preciso trocar um campo lá nele de Integer para string. [/b:307119e514]Como faço para abrir o arquivo XML e trocar o tipo de dado?


o mecansimo com cds troca o tipo de Campo e funciona mesmo , testado por mim no arquivo PodeApagar....

Porem nesse tópico , olhando com mais calma voce fala em :

e trocar o [b:307119e514]valor[/b:307119e514] de um campo do tipo Integer


afinal , voce quer trocar o Valor do Campo Ou po Tipo do campo...


Responder

Gostei + 0

16/08/2006

Paulo

Já consegui. Eis abaixo o que fiz.

procedure TForm1.BitBtn1Click(Sender: TObject); var nvo : TStringlist; s,caminho : String; begin caminho := ExtractFilePath(Application.ExeName)+´\mnemonicos.xml´; nvo := TStringList.Create; nvo.loadFromfile(caminho); s := nvo.Text; s := StringReplace(s,´´Integer´´,´´String´ WIDTH=´9´´,[rfReplaceAll]); nvo.Text := s; nvo.saveToFile(caminho); FreeAndNil(nvo); ModalResult := mrOk; end;


Assim funcionou e bem. Grato a todos!!!!


Responder

Gostei + 0

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

Aceitar