Diede
(usa Debian)
Enviado em 20/09/2008 - 14:52h
Finalmente! Alguém que ainda usa Pascal! hehe
Bem... é assim:
Acredito que você saiba definir ações e botões, etc, né?
Presumindo que sim, vou postar só o código. Seria assim:
var
ARQ: TStringList;
begin
ARG:=TStringList.Create;
ARG.LoadFromFile('C:\Arquivo.txt');
ARG.Text:=StringReplace(ARG.Text,'gateway=192.168.2.1','gateway=192.168.2.252',[rfReplaceAll]);
ARG.SavetoFile('C:\Arquivo.txt');
end;
Bem... quando você disse "Delphi", eu presumi que esta programando no Windows, por isso coloquei C:\Arquivo.txt no exemplo. Outra coisa: se for substituir uma frase por outra parecida, elimine as semelhanças e substitua só as diferenças, pois economiza memória.
Nesse caso, ao invés de:
ARG.Text:=StringReplace(ARG.Text,'gateway=192.168.2.1','gateway=192.168.2.252',[rfReplaceAll]);
Use:
ARG.Text:=StringReplace(ARG.Text,'192.168.2.1','192.168.2.252',[rfReplaceAll]);
(a não ser que isso atrapalhe o resultado final, como quando houver algo como dns=192.168.0.1, que seria erroneamente substituído)
Ah... outra coisa...
Para modificar uma linha específica, use assim:
ARQ[x]:=StringReplace(ARQ[x],'gateway=192.168.0.1','gateway=192.168.0.2',[rfReplaceall])
Onde x é o número da linha-1, exemplo, para a linha 70:
ARQ[69]:=StringReplace(ARQ[69],'gateway=192.168.0.1','gateway=192.168.0.2',[rfReplaceall])