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-05-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Desempaquetar campos numéricos comprimidos de archivo

Hola a tod@s.

Necesito leer un fichero creado con btrieve para pasarlo a mi aplicación. Con la instrucción BUTIL saco los registros a un fichero de texto pero me encuentro con que los campos numéricos están empaquetados. Para los que conozcan el BASIC quiero recordar que se empaquetaban/desempaquetaban con la instrucción cvi/cvs mki/mks.

¿Hay alguna manera desde Delphi de poder leer y desempaquetar estos campos o me tendré que preparar un programita en BASIC (horror porque no me acuerdo de nada)?

Dejo aquí un archivo de muestra por si a alguien le hace chiste y le echa un vistazo.

Gracias y un saludo
__________________
Be water my friend.

Última edición por newtron fecha: 18-01-2017 a las 19:32:30.
Responder Con Cita
  #2  
Antiguo 23-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En torrys hay algunos componentes para acceder desde delphi a bases de datos btrieve/pervasive, a ver si te sirve.
También he encontrado esto, es libre.
Responder Con Cita
  #3  
Antiguo 24-05-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Gracias, le echaré un vistazo y te cuento.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 24-05-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Parece que estos programas lo que hacen es algo similar al BUTIL que viene con las BTRIEVE que es generar un fichero de texto a partir del fichero original pero no me resuelve el problema de los números empaquetados.

Seguiremos buscando la forma.
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 24-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
"Números empaquetados", ¿te refieres a big endian y little endian?

Código:
unsigned long blockLength  = *blockLengthPtr++ << 24;
blockLength |= *blockLengthPtr++ << 16;
blockLength |= *blockLengthPtr++ << 8;
blockLength |= *blockLengthPtr;

unsigned long dataLength  = *dataLengthPtr++ << 24;
dataLength |= *dataLengthPtr++ << 16;
dataLength |= *dataLengthPtr++ << 8;
dataLength |= *dataLengthPtr;

Última edición por Casimiro Notevi fecha: 25-05-2012 a las 12:04:52.
Responder Con Cita
  #6  
Antiguo 24-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira esta página, creo que ahí tienes la solución

Y aquí un ejemplo sencillo, que en teoría funciona;

Código Delphi [-]
function SwapEndian(Value: integer): integer; register; overload;
asm
  bswap eax
end;

function SwapEndian(Value: smallint): smallint; register; overload;
asm
  xchg  al, ah
end;
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
Campos numericos Alexandro Tablas planas 6 21-10-2008 17:21:09
Problemas al actualizar campos numéricos con ClientDataSet e IBX PINO72 Conexión con bases de datos 0 17-03-2007 01:37:44
campos numericos en access naker Tablas planas 1 08-10-2004 02:59:48
Máscaras para campos numéricos jadelphi Varios 2 01-09-2004 08:53:06
Campos Numericos en DBEDITS jfloro OOP 2 04-06-2003 11:40:22


La franja horaria es GMT +2. Ahora son las 19:16:04.


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