Trocar variavel em string

Delphi

03/05/2007

Achei um exemplo mais nao estou dando conta de ajustalo

essa funcao troca a variavel dentro de um MEMO so que
eu nao quero apresentar componentes na tela gostaria de
fazer em um String ou Text algo assim


ta ai o exemplo que achei ...

Procedure TForm1.FindReplace (const Enc, subs: String; Var Texto: TMemo);
Var
i, Posicao: Integer;
Linha: string;
Begin
Texto.Text  := RichEdit1.Text;
For i:= 0 to Texto.Lines.count - 1 do
  begin
    Linha := Texto. Lines[i];
    Repeat
    Posicao:=Pos(Enc,Linha);
    If Posicao > 0 then
    Begin
      Delete(Linha,Posicao,Length(Enc));
      Insert(Subs,Linha,Posicao);
      Texto.Lines[i]:=Linha;
    end;
until
  Posicao = 0;
end;
end;


procedure TForm1.Button5Click(Sender: TObject);
begin
FindReplace(Edit1.Text,Edit2.Text, Memo1);
end;



Mysys

Mysys

Curtidas 0

Respostas

Marco Salles

Marco Salles

03/05/2007

Acho que vai ter que ter um Pouquinho de digitação extra.. Principalmente na Chamada do método...
Quer um exmplo classico

procedure MudarEdit(var texto:String);
begin
texto:=´Mude´;
end;

begin MudarEdit(edit1.text); //não compila end;


[b:16de3b7bfb]para isso tem fazer assim[/b:16de3b7bfb] :

var texto:String; texto:=edit1.Text; mudarEdit(texto); edit1.Text:=texto;


eu particularmente não conheço nada que se possa fazer para conseguir isso , sem a criação de uma variável auxiliar... Talves alguem saiba uma saida elegante para isso.. Fico tb no aguardo.[b:16de3b7bfb] Ficaria muito feliz[/b:16de3b7bfb]

voltemos ao seu caso

procedure TForm1.FindReplace (const Enc, subs: String; Texto:TStringList);
Var
i, Posicao: Integer;
Linha: string;
Begin
For i:= 0 to Texto.Count - 1 do
  begin
    Linha := Texto.Strings[i];
    Repeat
    Posicao:=Pos(Enc,Linha);
    If Posicao > 0 then
    Begin
      Delete(Linha,Posicao,Length(Enc));
      Insert(Subs,Linha,Posicao);
      Texto.Strings[i]:=Linha;
    end;
until
  Posicao = 0;
end;
end;


//usando uma variavel auxiliar , [b:16de3b7bfb]no caso o UmaLista[/b:16de3b7bfb]

procedure TForm1.Button1Click(Sender: TObject);
var
umalista:TstringList;
begin
try
umaLista:=TstringList.Create;
umaLista.AddStrings(memo1.lines);
FindReplace(edit1.Text,edit2.Text,umaLista);
memo1.Lines:=umalista;
finally
umaLista.Free;
end;
end;



GOSTEI 0
POSTAR