Fórum Gravar corpo de uma mensagem de e-mail em um campo tipo text do postgresql #458179

10/10/2013

0

boa tarde pessoal, estou desenvolvendo uma aplicação onde vou em uma determinada caixa de e-mail faço a leitura dela e tenho que gravar os dados no banco, para posterior análise e trabalhos de marketing, pois bem ao tentar gravar o corpo das mensagens que vem formatadas algumas vem com o apostrofo ' e na hora de gravar dá pau, já tentei várias rotinas para remover essa porcaria da mensagem mas não estou conseguindo, alguém tem alguma dica que possa me ajudar ?

o detalhe é assim: leio o corpo da mensagem com e jogo em um objeto richedit onde nele a propriedade plaintext está marcada e a wanttab e want return tb, depois passo o parâmetro :corpo_mensagem e na hora de mandar na Zeoslib query coloco zquery.parambyname(:corpo_mensagem).value := richedit.text, textos sem apostrofe ele grava que é um espetáculo, mas quando aparece essa porcaria ele dá pau.

se alguém puder me ajudar eu desde já agradeço.

att.

Julio
Fundação Aparecida

Fundação Aparecida

Responder

Posts

10/10/2013

Fundação Aparecida

ah esqueci de dizer, estou usando postgresql 9.2
Responder

Gostei + 0

11/10/2013

Marcos Oliveira

Você já tentou usar o StringReplace do Delphi pra tirar o apóstrofo?
Fiz um teste aqui e funcionou com o código abaixo:

RichEdit1.Text := StringReplace(RichEdit1.Text,'''','',[rfReplaceAll]);


Att,

Marcos
Responder

Gostei + 0

11/10/2013

Fundação Aparecida

vou tentar marcos, te falo o resultado em breve
valeu
Responder

Gostei + 0

15/10/2013

Fundação Aparecida

deu certo marcos obrigado, agora eu tava querendo saber se há alguma solução mágica para um texto com formatação html eu quero gravar ele no banco sem nenhuma tag html, vc tem alguma idéia ?
Responder

Gostei + 0

15/10/2013

Marcos Oliveira

Encontrei na internet uma função que parece funcionar.
Caso não te atenda 100%, é só fazer as adequações necessárias.

function RemoveTags(const s: string): string;
var
   i: Integer;
   InTag: Boolean;
begin
     Result := '';
     InTag := False;
     for i := 1 to Length(s) do
     begin
          if s[i] = '<' then
             inTag := True
          else if s[i] = '>' then
               inTag := False
          else if not InTag then
               Result := Result + s[i];
     end;
end;


Att,

Marcos
Responder

Gostei + 0

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

Aceitar