Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2004
oworty oworty is offline
Registrado
 
Registrado: nov 2004
Posts: 9
Poder: 0
oworty Va por buen camino
Unhappy Comparar dos RECORD

Hola a todos!

Recientemente he tenido la necesidad de trabajar con los record de delphi, pero claro, no es oro todo lo que reluce, me ha salido la necesidad de ver si el contenido de dos record's es igual. Me he encontrado que con un simple = no es posible comparar el contenido y tampono he sido capaz de encontrar ninguna función que compare el contenido de los record's y claro si el record contiene muchos campos es un trabajo muy costoso ir uno a uno comparando para ver si contienen la misma información, alguien sabe si existe una funcion que me diga si dos records son iguales? un ejemplo:

Tkk = record
f1, f2, f3: String;
end;

var o1, o2: Tkk;

begin
o1.f1 := 'hola1';
o1.f2 := 'hola2';
o1.f3 := 'hola3';

o2.f1 := 'hola1';
o2.f2 := 'hola2';
o2.f3 := 'hola3';

if funcionquecompare(o1, o2) then
ShowMessage('mismo contenido.')
else
ShowMessage('distinto contenido.');
end;

Gracias a todos de ante mano!!!
Responder Con Cita
  #2  
Antiguo 23-11-2004
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Post Ayuda

Hola, si trabajas con variables tipo "record", mucho me temo que te vas a tener que currar una función que compare uno a uno, en cambio, si utilizaras bases de datos como, por ejemplo, la Paradox que viene con Delphi, podrias utilizar la funcion "if tabe1.FieldByname ( 'Nombre' ).AsString = table2.FieldByname ( 'Nombre' ).AsString then ...." en este caso, sí que basa solo con poner el signo igual.

Se entiende que table1 y table2 son componentes TTable.

Espero que te sirva de ayuda.


Saludos.
Responder Con Cita
  #3  
Antiguo 23-11-2004
oworty oworty is offline
Registrado
 
Registrado: nov 2004
Posts: 9
Poder: 0
oworty Va por buen camino
Unhappy

Ante todo muchas gracias!

Si efectivamente necesito comparar variables de tipo record!Vaya me desilusionaste, me lo tendre que currar, pense que delphi tendría alguna función que hiciera la faena de comporar los campos de mi variable de tipo record por mi. Otra cosa los componentes TTable igual que las variables record, ibsql, datasets, etc... se que se pueden comparar campo a campo con un simple =, pero lo que pretendia es comparar un registro con otro entero para ver si hay alguna variación y si es así hacer un update.

Muchas gracias, de nuevo. Se agradece tu ayuda.
Responder Con Cita
  #4  
Antiguo 23-11-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Podrías primero comparar el tamaño de ambos records (SizeOf), si el tamaño es igual podrías utilizar alguna función como CompareMem para comparar su contenido.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 19:45:09.


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