[firebase-br] off topic: mala direta
Francisco
francisco em logosinfo.com.br
Dom Set 30 19:03:49 -03 2007
obrigado a todos pela dica, melhor encerrar por aqui, ja q tamos fugindo um
pouco do escopo da lista. valeu amigos.
----- Original Message -----
From: "Eduardo Bahiense" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Sunday, September 30, 2007 4:47 PM
Subject: Re: [firebase-br] off topic: mala direta
[...]
> texto de forma padrão: ex:
> &nome&
> &endereço&
> ou
> <<nome>>
> <<endereço>>
>
> mandar sua aplicação ler o texto rtf para uma variável de texto, ou ums
> stringlist e usar as funções do próprio Delphi (o help é rico nelas).
No caso de Rtf tem que fazer via FindText.
A procedure abaixo demonstra como fazer se você passar uma lista do tipo
ReplaceList.Add('Nome=José Antônio da Silva');
ReplaceList.Add('Endereco=Rua x, No Tal');
ou ainda
ReplaceList.Values['Nome'] := 'José Antônio da Silva'
ReplaceList.Values['Endereco'] := 'Rua x, No Tal'
No caso, ela procura <Nome> e substitui por José Antônio da Silva e
assim sucessivamente
procedure DoReplaceRichFields(RichEdit: TRichEdit; ReplaceList:TStrings);
var FoundAt, i, StartPos, EndPos, nSize:integer;
ToSearch, ToReplace:String;
begin
EndPos := RichEdit.GetTextLen;
for i := 0 to ReplaceList.Count-1 do
begin
StartPos := 0;
FoundAt := 0;
while FoundAt >= 0 do
begin
ToSearch := '<'+ReplaceList.Names[i]+'>';
ToReplace := ReplaceList.ValueFromIndex[i];
nSize := Length(ToSearch);
FoundAt := RichEdit.FindText(ToSearch,
StartPos, EndPos, [stMatchCase]);
if FoundAt >= 0 then
begin
RichEdit.SelStart := FoundAt;
RichEdit.SelLength := nSize;
RichEdit.SelText := ToReplace;
StartPos := FoundAt+nSize;
end;
end;
end;
end;
[]s Eduardo
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista