Fórum Excluir tudo que estiver entre parêntesis no Tmemo #576664
08/03/2017
0
Ex: O planeta terra é "Azul"
Queria que ficasse: O planeta terra.
mas a palavra entre os parêntesis vai ser diferente em todo o texto, queria que a exclusão independesse da palavra entre os parêntesis.
Johnatan David
Curtir tópico
+ 0Post mais votado
08/03/2017
[url]https://www.devmedia.com.br/delphi-stringreplace-como-utilizar-a-funcao-stringreplace-no-delphi/13222[/url]
Jones Granatyr
Gostei + 1
Mais Posts
08/03/2017
Johnatan David
Gostei + 0
09/03/2017
Johnatan David
[url]https://www.devmedia.com.br/delphi-stringreplace-como-utilizar-a-funcao-stringreplace-no-delphi/13222[/url]
Oi amigo, agradeço pela atenção, mas o problema é que StringReplace eu tenho que setar previamente a palavra que vai ser substituídas no meu caso vão ser várias palavras que vão ser substituídas entre os parêntesis, eu n sei previamente quais são pq elas são puxadas em runtime de um site, e nenhuma dessas palavras é igual a outra, desde já agradeço sua ajuda...
Gostei + 0
09/03/2017
Raylan Zibel
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k: integer;
auxstr1, auxstr2: string;
begin
j := 0;
k := 0;
auxstr1 := mmo1.Lines.Text;
auxstr2 := '';
for i := 1 to Length(auxstr1) do
begin
// fim aspas
if (auxstr1[i] = '"') and (J > 0) then
k := i;
// inicio aspas
if (auxstr1[i] = '"') and (j = 0) then
j := i;
// texto entre aspas
if (j > 0) and (k > 0) then
begin
auxstr2 := Copy(auxstr1, j, (k+1) - j);
ShowMessage(auxstr2);
mmo1.Lines.Text := StringReplace(mmo1.Lines.Text, auxstr2, edt1.Text, [rfReplaceAll, rfIgnoreCase]);
j := 0;
k := 0;
end;
end;
end;Favor testar aí.
Gostei + 1
09/03/2017
Raylan Zibel
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k: integer;
auxstr1, auxstr2: string;
begin
j := 0;
k := 0;
auxstr1 := mmo1.Lines.Text;
auxstr2 := '';
for i := 1 to Length(auxstr1) do
begin
// fim parenteses
if (auxstr1[i] = ')') and (J > 0) then
k := i;
// inicio parenteses
if (auxstr1[i] = '(') and (j = 0) then
j := i;
// texto entre parenteses
if (j > 0) and (k > 0) then
begin
auxstr2 := Copy(auxstr1, j, (k+1) - j);
//ShowMessage(auxstr2);
mmo1.Lines.Text := StringReplace(mmo1.Lines.Text, auxstr2, edt1.Text, [rfReplaceAll, rfIgnoreCase]);
j := 0;
k := 0;
end;
end;
end;
Gostei + 1
10/03/2017
Johnatan David
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k: integer;
auxstr1, auxstr2: string;
begin
j := 0;
k := 0;
auxstr1 := mmo1.Lines.Text;
auxstr2 := '';
for i := 1 to Length(auxstr1) do
begin
// fim parenteses
if (auxstr1[i] = ')') and (J > 0) then
k := i;
// inicio parenteses
if (auxstr1[i] = '(') and (j = 0) then
j := i;
// texto entre parenteses
if (j > 0) and (k > 0) then
begin
auxstr2 := Copy(auxstr1, j, (k+1) - j);
//ShowMessage(auxstr2);
mmo1.Lines.Text := StringReplace(mmo1.Lines.Text, auxstr2, edt1.Text, [rfReplaceAll, rfIgnoreCase]);
j := 0;
k := 0;
end;
end;
end;
Brother, Muito Obrigado pela força, era isso mesmo,vleeew :D
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)