Fórum Trocar variavel em string #341269
03/05/2007
0
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 ...
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
Curtir tópico
+ 0
Responder
Posts
04/05/2007
Marco Salles
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;
[b:16de3b7bfb]para isso tem fazer assim[/b:16de3b7bfb] :
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
//usando uma variavel auxiliar , [b:16de3b7bfb]no caso o UmaLista[/b:16de3b7bfb]
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;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)