PDA

Ver la Versión Completa : Caracteres extraños en un Memo


Sr.Scorpion
22-10-2008, 21:37:46
Hola:

Estoy utilizando el ComPort y Delphi 6, cuando leo del puerto serie filtro los caracteres q me entran:


procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
str,cadena: string;
begin
ComPort.ReadStr(cadena, Count);
str:= StringReplace(cadena, #$13, '',[rfReplaceAll]);
str:= StringReplace(str, #$11, '',[rfReplaceAll]);
str:= StringReplace(str, #$A#$A, #13#13,[rfReplaceAll]);
str:= StringReplace(str, #$A, #13,[rfReplaceAll]);
ShowMessage(Str);
Memo1.Text := Memo1.Text + Str;
end;


Resulta q con esto el texto me sale totalmente depurado, de hecho cuando me sale el texto en el ShowMessage me sale perfecto, sin embargo cuando el Memo me lo carga, me lo muestra con caracteres bastante extraños con simbolos musicales etc etc.... q fuente le puedo poner al Memo para q me salga el texto como mismo me sale el ShowMessage.... ???

Saludos

elcolo83
23-10-2008, 19:54:59
Es muy probable que la funcion ShowMessage tambien este filtral los caracteres que no corresponden... Creo que deberias filtrar algo como asi:


procedure Filtrar(var Cadena: String);
var i: integer;
begin
i:= 1;
while i < Length(Cadena) do
begin
//Si no es un TAB ni un Enter lo borro
if (Cadena[i]<#32)and(Cadena[i]<>#9)and(Cadena[i]<>#13) then
Delete(Cadena, i, 1)
else i:= i+1;
end;
end;