Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Eliminar caracteres extraños obtenidos por puerto serie (https://www.clubdelphi.com/foros/showthread.php?t=60909)

JoseFco 21-10-2008 21:28:53

Cita:

Empezado por mario2000 (Mensaje 321185)
Hola egostar, siento dicentir un poco con eso, pero el manual dice comport lo dice.

ahora viejo el no deberia recivir caracteres extraños si en otro programa no le salen por que en el de el iban a salir, es mas le voy a hacer un ejemplo y se los subo, yo no soy experto es lo que mas me gustaria pero asi es como siempre lo he hecho y funciona perfectamente :eek:

Sigo esperando el ejemplo amigo.:confused:


Un Saludo.

PD:En el Hyperterminal terminal no sale porque tiene un filtro para no mostrarlo.(elimina ese caracter)

egostar 21-10-2008 21:43:50

Cita:

Empezado por maeyanes (Mensaje 321460)
Disculpen mi ignorancia con esta funcion.... alguien puede postear un ejemplo de esta funcion... algo tengo q estar haciendo mal, q no hay manera q me compile el Delphi

Hola

Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  cadena: string;
begin
  ComPort.ReadStr(cadena, Count);
  cadena := StringReplace(cadena, #13, '', [rfReplaceAll]);
  ShowMessage(cadena);
  Memo.Text := Memo.Text + cadena;
end;

Salud OS

maeyanes 21-10-2008 21:46:17

Hola...

Solo que te confundiste al hacer el quote... :D :D


Saludos...

Sr.Scorpion 22-10-2008 14:56:21

Probe tu sentencia y me dice Incompatibles types.... no creo q esa sea la solucion.... hay algo q tener hecho mal cuando declaro Flags o algo por el estilo

Saludos

Sr.Scorpion 22-10-2008 15:02:19

Cita:

Empezado por egostar (Mensaje 321469)
Hola

Código Delphi [-]procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var cadena: string; begin ComPort.ReadStr(cadena, Count); cadena := StringReplace(cadena, #13, '', [rfReplaceAll]); ShowMessage(cadena); Memo.Text := Memo.Text + cadena; end;


Salud OS

Código Delphi [-]
cadena := StringReplace(cadena, #13, '', [rfReplaceAll]);
Incompatible types de nuevo

Delphius 22-10-2008 15:23:47

Cita:

Empezado por Sr.Scorpion (Mensaje 321563)
Código Delphi [-]cadena := StringReplace(cadena, #13, '', [rfReplaceAll]);

Incompatible types de nuevo

Hola Sr.Scorpion,
Si leyeras un poco la ayuda sobre StringReplace sabrías que el error es bastante sencillo de resolver: le faltan las comillas simples a #13. Es decir que es: '#13'.

Mayenaes unos post antes lo ha comentado.

Saludos,

Sr.Scorpion 22-10-2008 15:31:08

Cita:

Empezado por Delphius (Mensaje 321574)
Hola Sr.Scorpion,
Si leyeras un poco la ayuda sobre StringReplace sabrías que el error es bastante sencillo de resolver: le faltan las comillas simples a #13. Es decir que es: '#13'.

Mayenaes unos post antes lo ha comentado.

Saludos,


Hola Delphius

Si tu tambien leyeras un poco.... al principio del post mi sentencia era '#13' y me daba el mismo error (Incompatible types) segun los consejos de los miembros de este forums me dijeron q eliminara las comillas, cosa q hice y me sigue saliendo el mismo por eso lo he ido poniendo como ellos me lo han dicho

Saludos

maeyanes 22-10-2008 15:42:42

Cita:

Empezado por Delphius (Mensaje 321574)
Hola Sr.Scorpion,
Si leyeras un poco la ayuda sobre StringReplace sabrías que el error es bastante sencillo de resolver: le faltan las comillas simples a #13. Es decir que es: '#13'.

Mayenaes unos post antes lo ha comentado.

Saludos,

Hola...

Delphius, lo que yo hice fue corregirle de: '#13' a #13, o sea, le quité las comillas simples a su código...

Ahora, esto al menos a mi me compila bien, no se por que razón al compañero le da ese error...

Tal vez podría hacer algo como:

Código Delphi [-]
var
  CharToReplace: string;
  Cadena: string;

begin
  CharToReplace := #13;
  Cadena := StringReplace(cadena, CharToReplace, '', [rfReplaceAll]);
end;



Saludos...

Delphius 22-10-2008 15:51:06

Es verdad, tienen razón.
Disculpa mi reacción Sr.Scorpion, no debí reacción asi.

A mi también me resulta raro que arroje un error allí.:confused:

Saludos,

JoseFco 22-10-2008 16:28:33

Cita:

Empezado por Delphius (Mensaje 321574)
Hola Sr.Scorpion,
Si leyeras un poco la ayuda sobre StringReplace sabrías que el error es bastante sencillo de resolver: le faltan las comillas simples a #13. Es decir que es: '#13'.

Mayenaes unos post antes lo ha comentado.

Saludos,

Código Delphi [-]
cadena := StringReplace(cadena, '#13', ' ', [rfReplaceAll]); 


No les parece que despues de (cadena, #13, lo que debe ir es '' y no esto".Ojo que puede ser ese el problema. ' ' eso es lo que va no esto ".

Un Saludo.

Sr.Scorpion 22-10-2008 16:34:14

Hola JoseFco para serte sincero no creo q ese sea el problema. Para mi ' ' es lo mismo q '', al final es una string, aqui pienso q el verdadero dolor de cabeza esta en el ultimo parametro, q no se pq diablos q me dice q son de tipos incompatibles. No obstante sigo a la espera de los gurus de este foro... a ver q dicen.

Saludos

maeyanes 22-10-2008 17:14:40

Hola...

El último parámetro no tiene nada que ver, ahí espera un conjunto y eso es lo que le estás enviando...

Podrías hacerlo de otra forma si quieres:

Código Delphi [-]
var
  CharToReplace: string;
  Cadena: string;
  Flags: TReplaceFlags;

begin
  CharToReplace := #13;
  Flags := [rfReplaceAll];
  Cadena := StringReplace(cadena, CharToReplace, '', Flags);
end;

Pero para el caso es lo mismo... ;)


Saludos...

Lepe 22-10-2008 17:27:41

Creo que alguna directiva de compilación está haciendo de las suyas. Acabo de probar de ambas formas en delphi 6.

Código Delphi [-]
var
  Cadena, str: string;
begin
  str := 'mio mio '+ #13 + 'mio';
  Cadena := StringReplace(str, '#13','', []);
  ShowMessage (cadena);
end;

Esto compila pero no funciona :eek:, En el showmessage se ve la cadena partida por el salto de linea.

Esto es lo que funciona correctamente:
Código Delphi [-]
var
  Cadena, str: string;
begin
  str := 'mio mio '+ #13 + 'mio';
  Cadena := StringReplace(str, #13,'', []);
  ShowMessage (cadena);
end;
Es decir, sin las comillas simples.

Al menos yo, en Project -> options -> compiler -> syntax options, tengo todo marcado excepto "complete boolean eval" y "@ typed operand".

Sin duda, algo se nos escapa cuando no le funciona.

Saludos.

JoseFco 22-10-2008 17:45:16

Cita:

Empezado por Sr.Scorpion (Mensaje 321600)
Hola JoseFco para serte sincero no creo q ese sea el problema. Para mi ' ' es lo mismo q '', al final es una string, aqui pienso q el verdadero dolor de cabeza esta en el ultimo parametro, q no se pq diablos q me dice q son de tipos incompatibles. No obstante sigo a la espera de los gurus de este foro... a ver q dicen.

Saludos


Bueno tengan en cuenta que soy novato en esto, pero esto " = Shift+" y esto '' son dos ' ' .No estoy en mi pc asi que no tengo Delphi para poder comprobar si es lo mismo.

Un Salud.

Sr.Scorpion 22-10-2008 19:57:22

Fin del asunto... muchas a todos en especial a Lepe

Como decia el gran Lepe

Código Delphi [-]
str:= StringReplace(Cadena, #13, '',[]);


Pero realmente si lo que quieres es eliminar los caracteres de los q habia hablado desde el principio tienes q poner #$13, por lo q la sentencia quedaria asi

Código Delphi [-]
str:= StringReplace(Cadena, #$13, '',[rfReplaceAll]);

Gracias una vez mas


La franja horaria es GMT +2. Ahora son las 21:44:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi