Ver Mensaje Individual
  #1  
Antiguo 21-12-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Reputación: 19
papulo Va por buen camino
Comparar cadenas de caracteres sacadas de un fichero

Estoy intentando procesar un fichero que no lo puedo leer como texto.

La información que me interesa comienza siempre con la misma cadena, 00:F5:02:40:00 en hexadecimal.

El código que uso es el siguiente:
Código Delphi [-]
  try
    BlockRead(ffile_input, Ch, 1); //Leo un caracter y lo guardo en 'Ch'
  except
    exit
  end;
  buffer := ''; //Reseteo el Buffer
  sStartCross := Chr(0) + Chr(245) + Chr(2) + Chr(64) + Chr(0); //Inicio la marca de comienzo de los datos

  repeat
    if Length(buffer) < 5 then //Consigo la longitud mínima para la comparación
      begin
        BlockRead(ffile_input, Ch, 1);
        buffer := buffer + Chr(Ch);
      end
    else
      begin
        BlockRead(ffile_input, Ch, 1);
        buffer := buffer + Chr(Ch);
        buffer := AnsiRightStr(buffer, 5);
      end;
  until (StrComp(Pchar(buffer), Pchar(sStartCross)) = 0);


EL valor del sStarCross es #0'õ'#2'@'#0 y no hay forma de que en el bucle me cumpla la condición de la comparación bien.

No se por donde cogerlo, es la primera vez que tengo que hacer algo así y ahora he visto que el problema está ahí, en como comparo buffer y sStarCross , que no se cumple la condición bien.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita