Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Hola.

Bueno, es bastante curioso lo que te pasa. Yo implementé este código:

Código Delphi [-]
program leer;

{$APPTYPE CONSOLE}

uses
  Windows, SysUtils;

type

Tpgmf = record
  FilePrint: SmallInt; // 2B
  Version: SmallInt; // 2B
  Count: Integer; // 4B
  BlockFingerPrint: SmallInt; // 2B
  BlockVersion: SmallInt; // 2B
  RecordCount: Integer; // 4B
  RecordSize: Integer; // 4B
  Checksum: Integer; // 4B - Uso Delphi 3 standar y LongWord no me lo reconoce 
  CourseName: array [0..16] of WideChar; // 34B
  WattsSlopePulse: Integer; // 4B
 end;

const
  TAB=#9;

var
  F: File of Tpgmf;
  Dato: Tpgmf;
  Fw: File of Byte;
  W: Byte;
  N: Integer;

begin
  AssignFile(F, ParamStr(1));
  Reset(F);
  Seek(F, 0);
  Read(F, Dato);
  CloseFile(F);
  WriteLn('FilePrint: '+IntToStr(Dato.FilePrint));
  WriteLn('Version: '+IntToStr(Dato.Version));
  WriteLn('Count: '+IntToStr(Dato.Count));
  WriteLn('BlockFingerPrint: '+IntToStr(Dato.BlockFingerPrint));
  WriteLn('BlockVersion: '+IntToStr(Dato.BlockVersion));
  WriteLn('RecordCount: '+IntToStr(Dato.RecordCount));
  WriteLn('CheckSum: '+IntToStr(Dato.CheckSum));
  WriteLn('CouseName: '+String(Dato.CourseName));
  WriteLn('WattsSlopePulse: '+IntToStr(Dato.WattsSlopePulse)+#13#13);
  ReadLn;
  AssignFile(Fw, ParamStr(1));
  Reset(Fw);
//  For N:=0 to FileSize(Fw)-1 do   Esto leería todos los bytes
  For N:=0 to 61 do  //Pero conque lea 62 está bien, es lo que ocupa la estructura
    begin
    Seek(Fw, N);
    Read(Fw, W);
    WriteLn(IntToStr(W)+TAB+IntToHex(W,2)+TAB+Chr(W));
    end;
  CloseFile(Fw);
  ReadLn;
end.

La segunda parte era para ver el balor de los bytes. Efectivamente, después de la cadena de texto (que declaras demasiado larga, tienes que quitarle un carácter, 0..17 son 36 bytes) hay un byte que vale "1", pero que leyéndolo con la estructura no aparece. Me parece que habrá que buscar otra solución (o un buen porqué).

¡Ah! y si encuentras/has encontrado la solución, postéala, no me dejes con las ganas de saber qué pasaba


Saludos.
Responder Con Cita
  #2  
Antiguo 12-11-2007
JosepZ JosepZ is offline
Miembro
 
Registrado: oct 2007
Posts: 20
Poder: 0
JosepZ Va por buen camino
El byte de valor "1" no aparece por que array[0..16] of widechar lee 36 bytes, en vez de 34, y el integer "WattsSopePulse" se desplaza.

Lo he comprobado con el file monitor;empieza a leer en el offset 0 y lee 60 bytes, dos por encima del offset 58, donde empieza el integer.

Ni idea de por que, pero lo hace. Por eso con seek, le das el offset y el tamaño y lo lee sin problemas.
Responder Con Cita
  #3  
Antiguo 12-11-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Me dejas de piedra.


Esto es como aquella división que me puse de pequeño y no fui capaz de resolver (con un número no llegaba, y con el siguiente me pasaba ).

¿Controlas algún otro entorno a parte de Delphi? Creo que sería buena idea probar, incluso hacerse una librería (DLL) para leer el dichoso archivo. Aún me faltan unas pocas lecciones de C, pero si llego pronto igual puedo probar.

De verdad no se me ocurre nada más.

Saludos extraños.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Cargar archivo y guardarlo en tabla Carliviris Varios 4 30-09-2006 00:39:43
cargar archivo este si gulder API de Windows 12 04-05-2005 06:26:21
cargar un archivo sys en builder israelgs C++ Builder 0 08-10-2004 21:25:32
Cargar Archivo srangel JAVA 0 03-09-2004 21:19:15
Cargar archivo chm esocrates Varios 1 27-07-2003 09:58:02


La franja horaria es GMT +2. Ahora son las 21:57:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi