Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 05-03-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por ecfisa Ver Mensaje
Hola David.

A ver si entendí bien, ¿ El resultado esperado es 5320 ? por que de ser así el codigo que probé anteriormente me da ese resultado, no obtengo el valor 22586.

Saludos
¿Qué código has probado? No será ninguno de los "intentos" que yo he puesto arriba, ¿no? Me cachis... a mí me da ese 22586 y además en ambos casos... en ambos "ButtonClicks"... ¿cómo es que puede darte a ti 5320? ¿Acaso por la versión de Delphi? Yo uso (de hecho es un requerimiento en este caso) Delphi 2007.

¡Gracias, ecfisa, por tu ayuda!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #22  
Antiguo 05-03-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

¡ecfisa! A ver si lo que has probado ha sido el código de scafandra...

¡escafandra! En efecto, tú código produce el resultado esperado, empero, fíjate cómo obtengo yo el resultado "para mostrarlo"... no sé si es la forma más adecuada... aunque parece funcionar, es decir, obtengo el tan deseado 5320... como una cadena...

Código Delphi [-]
var
  S: String;
  CRC: ABYTE;
  Result: string;
begin
  S:= '13|0000123|1|Maximilian|Mustermann|05051999|21092019';
  CRC := CCITTx1D0F(PAnsiChar(S), Length(S));

  Result := IntToHex(CRC[0], 0) + IntToHex(CRC[1], 0);

  // En efecto, se muestra 5320
  ShowMessage(Result);
end;

Me queda la duda de que esa sea la mejor forma de obtener finalmente el valor 5320... pero está claro que os debo una... sino dos... porque me habéis salvado de esta tarea: ahora sólo queda implementarlo dentro de un plugin que a su vez será usado en el programa que necesita calcular el CRC de marras...

Sin vosotros me hubiera sido imposible... y es que uno está muy falto de conocimientos, o, al menos, de los conocimientos que aquí sin duda eran necesarios. Espero poder responderos de alguna manera en otra ocasión, aunque, con vuestro nivel... tendrá que ser invitándoos a un refrigerio.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 06-03-2020 a las 10:58:52.
Responder Con Cita
  #23  
Antiguo 06-03-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

He dicho arriba que me quedaba la duda de si sería o no lo más correcto usar "IntToHex" para obtener el resultado como una cadena. Mayormente, me lo preguntaba porque si probaba con otra cadena de entrada, obtenía resultados del tipo: 1B07, es decir, no numéricos, es decir, no como: 5320.

No sé si será la mejor forma usar "IntToHex", pero, no se me había ocurrido probar con el programa en C++... y, en efecto, este también produce resultados del tipo: 1B07, de modo que, asumo que, aunque "IntToHex" no sea acaso lo mejor, lo cierto es que parece funcionar... al menos tal como lo hace el programa en C++.

En fin, ya tengo todo esto (la función de escafandra) dentro del "plugin" en el que tenía que ir.

¡Muchas gracias de nuevo por vuestra ayuda!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #24  
Antiguo 06-03-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
La forma de representarlo en texto debe ser con IntToHex, el problema es que quizás el dato de deba manejar como array de Bytes y no como texto. Eso quiere decir que quizás deberías devolver el resultado CRC como Bytes y preparar una función para pasar a texto cuando proceda. Así lo tienes todo cubierto.


Saludos.
Responder Con Cita
  #25  
Antiguo 06-03-2020
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por escafandra Ver Mensaje
La forma de representarlo en texto debe ser con IntToHex, el problema es que quizás el dato de deba manejar como array de Bytes y no como texto. Eso quiere decir que quizás deberías devolver el resultado CRC como Bytes y preparar una función para pasar a texto cuando proceda. Así lo tienes todo cubierto.


Saludos.
Gracias por aclarar mi primera duda: parece que IntToHex es correcto, en este caso. Ciertamente, el resultado del programa C++ es también una cadena... porque el programa "se para ahí", no va más allá... de modo que llevas razón: tal vez lo que interese sean los "bytes", y, aquí tendríamos acaso un problema *, pero, ya veremos si es así o no: me lo dirán, supongo, si no pueden hacer lo que necesiten.

* El problema es que esto tiene que implementarse en NeoBook, cierto programa para Windows (desarrollado con Delphi, por cierto), más concretamente como un plugin de este programa, y, ahí no existen tipos como "byte", todo son cadenas o números. Pero bueno, no voy a adelantar acontecimientos... el resultado del programa de C++ es el mismo ahora que en Delphi: tal vez con esto sea suficiente.

¡Muchas gracias de nuevo a todos por vuestra ayuda!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda para Convertir Todo este código en Function MaxiDucoli Internet 3 01-10-2017 22:29:07
Convertir cadena aleatoria en cadena de N caracteres DANY OOP 3 12-03-2009 20:49:21
Problemas para validar entrada de datos en delphi 7 Nelly Varios 1 27-03-2007 23:31:25
Tengo un lio con cierto código David OOP 11 13-10-2006 20:07:34
Concatenar Cadena Larga dentro de codigo Delphi JoanKa Conexión con bases de datos 6 04-03-2005 17:53:44


La franja horaria es GMT +2. Ahora son las 16:53:12.


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
Copyright 1996-2007 Club Delphi