Percorrer arquivo texto
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
Curtidas 0
Respostas
Marco Salles
16/08/2006
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...
espero que tenha ajudado..
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..
GOSTEI 0
Paulo
16/08/2006
Fiz assim:
Só que não tá funcionando com o StringReplace. O que pode ser? No aguardo, grato!!!
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!!!
GOSTEI 0
Marco Salles
16/08/2006
paulo a resposta que eu lhe forneci foi baseada no seu outro tópico
http://forum.clubedelphi.net/viewtopic.php?t=79907
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 :
afinal , voce quer trocar o Valor do Campo Ou po Tipo do campo...
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...
GOSTEI 0
Paulo
16/08/2006
Já consegui. Eis abaixo o que fiz.
Assim funcionou e bem. Grato a todos!!!!
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!!!!
GOSTEI 0