Excluir tudo que estiver entre parêntesis no Tmemo
Bom Dia galera, estou desenvolvendo uma aplicação simples em delphi xe5 mas estou quebrando a cabeça já faz um tempo, queria que todas as palavras do texto do memo que estivessem entre parêntesis fossem excluídas (excluir somente o texto entre os parêntesis), e o mais importante é que a palavra nunca vai ser a mesma.
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.
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
Curtidas 0
Melhor post
Jones Granatyr
08/03/2017
Opa! Penso que usando a função StringReplace deve resolver o problema. Veja esse artigo
[url]https://www.devmedia.com.br/delphi-stringreplace-como-utilizar-a-funcao-stringreplace-no-delphi/13222[/url]
[url]https://www.devmedia.com.br/delphi-stringreplace-como-utilizar-a-funcao-stringreplace-no-delphi/13222[/url]
GOSTEI 1
Mais Respostas
Johnatan David
08/03/2017
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
Johnatan David
08/03/2017
Opa! Penso que usando a função StringReplace deve resolver o problema. Veja esse artigo
[url]https://www.devmedia.com.br/delphi-stringreplace-como-utilizar-a-funcao-stringreplace-no-delphi/13222[/url]
[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
Raylan Zibel
08/03/2017
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
Raylan Zibel
08/03/2017
Trocar '"' por '(' e ')'. Erro meu.
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
Johnatan David
08/03/2017
Trocar '"' por '(' e ')'. Erro meu.
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