Ver Mensaje Individual
  #7  
Antiguo 01-10-2015
Avatar de geolife
[geolife] geolife is offline
Miembro Premium
 
Registrado: nov 2006
Ubicación: Barcelona
Posts: 88
Reputación: 18
geolife Va por buen camino
Hola Al,

Entiendo según tu explicación que para poder usar la función CompareMen usando serialización lo que tengo que hacer es fabricar una estructura con longitud fija, es decir, si uso algún String del que puedo conocer su rango de uso, podría codificar algo como:

Código Delphi [-]
TCliente = Record
  Campo1: String[30]; 
  Campo2: Double;
  Campo3: TdateTime;
end;

Gracias!


Cita:
Empezado por Al González Ver Mensaje
Además de la interesante aportación de Rodrigo Ruz indicada puntualmente por ecfisa, considera algún mecanismo de serialización que facilite el proceso de comparar. Serializar se puede entender de forma simple como convertir cualquier grupo de información en una tira plana de bytes sin punteros (los campos String son punteros a otra región de memoria). Como tal, esa tira de bytes será perfectamente comparable mediante la función CompareMem. Sólo considera que esto puede ser más lento que comparar campo por campo o que usar códigos Hash.

Como sea, y viendo que tienes una versión moderna de Delphi, tiene mucho valor estudiar temas de RTTI y clases novedosas como TBinaryWriter.

Un saludo.
Responder Con Cita