Fórum Excluir tudo que estiver entre parêntesis no Tmemo #576664

08/03/2017

0

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.
Johnatan David

Johnatan David

Responder

Post mais votado

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]

Jones Granatyr

Jones Granatyr
Responder

Gostei + 1

Mais Posts

08/03/2017

Johnatan David

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...
Responder

Gostei + 0

09/03/2017

Johnatan David

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]



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...
Responder

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í.
Responder

Gostei + 1

09/03/2017

Raylan Zibel

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;
Responder

Gostei + 1

10/03/2017

Johnatan David

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
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar