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 01-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
El tamaño de un Fichero

Hola Amigos.

Existe alguna forma de que Delphi al cargar un file nos permita saber el size del mismo?.El formato de este file es un (intelHex.)


Un Saludo.
Responder Con Cita
  #2  
Antiguo 01-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hum... ¿estamos hablando de averiguar el tamaño de un archivo?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 02-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola dec.

Me temo que es mas complicado que eso.No es en si el tamaño del file, en realidad es el size de los bytes que este file contiene y que son data a programar.
Para explicarme mejor intelhex. este enlace nos deja ver mejor el formato de este tipo de files.En la penultima linea esta la informacion que tendria que manipular.En el primer hex de esta linea esta la cantidad de bytes de data que contiene y en los dos bytes que le siguen esta el address donde esta data comenzara.Si el primer hex de esa linea es 03 entonces sabremos que el address final donde terminara el size del file de programacion es ese address mas dos espacios mas . jajajajajajajaja algo complicado.
La idea del porque quiero saber el size de este tipo de file es para saber de ante mano antes de mandar un file a un chip si este tiene la capacidad de cargarlo, antes de dar la orden de hacerlo.

Un Saludo.
Responder Con Cita
  #4  
Antiguo 02-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola Amigos.

Bueno aportando mas informacion:

:080743004349474F4C2D694862

En esa linea de codigo intelhex (la penultima para ser mas especifico) Encontramos que el primer hex es 08 esto nos deja saber que son 8 los hex de data en la misma.Los hex 0743 nos dejan saber que estos 8 hex de data comensaran en el address 0743h donde el primero de ellos estara en esa address y los restantes 7 en adelante.Entonces tendriamos que el address final de ese file seria 074Ah. Teniendo en cuenta que 07FFh son 2 kbytes, entonces podemos decir que este file si cabe dentro de un chip que tengo 2 kbytes de memoria.Ya que 074A < 07FF.
La clave de lo que trato de encontrar estaria entonces como digo en la penultima linea de este tipo de files y para ser mas exactos en sus primeros tres bytes.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 02-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Veamos si me sale...

Código Delphi [-]
function IntelHexFileSize(FileName: string): integer;
var
 F: File of byte;
 HexCount, A1, A2: Byte;
 Adress: Word;
begin
AssignFile(FileName, F);
Reset(F);
Read(F, HexCount);
Read(F, A1);
Read(F, A2);
CloseFile(F);
Adress:=HexToInt(IntToHex(A1,2)+IntToHex(A2,2));
Result:=Adress+HexCount;
end;

Necestirás la función HexToInt: Trucomanía

Está hecho así, de cabeza, no sé si funcionará bien... de todas formas, ¿no te vale un FileSize de un archivo de tipo Byte?


Salu2.
Responder Con Cita
  #6  
Antiguo 02-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola ixMike.

Gracias por la ayuda que me puedas dar en este hilo.Pondre un file intelhex corto para ver si me puedes ayudar a encontrar una forma de poder contar los bytes de data que en realidad tiene.

[codigo]
:020000000149B4
:0100030032CA
:01000B0032C2
:0100130032BA
:01001B0032B2
:0100230032AA
:1800250075880075890075D00075A800227F000FEFB4FFFB227E007DFC
:14003D00020E1132EE70FA1DED70F6221125B290113A014B63
:00000001FF
[/codigo]

Este file intelhex tiene 9 lineas pero en realidad solo 8 tienen bytes de data a programar en un micro.
Si vemos el primer hex de cada linea despues del semicolon ( : ) y lo pasamos a decimal nos dara los bytes de data en esa linea y asi los podemos sumar con los de la linea dos,tres, etc. En este caso en la primera linea hay solo dos bytes de data a programar ya que es :02 y en la segunda solo uno :01

Mi pregunta se puede hacer una funcion en Delphi que solo cuente en cada linea despues del semicolon el hex que le sigue y sumarlo al siguiente de la siguiente linea ?

Un Saludo.
Responder Con Cita
  #7  
Antiguo 03-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Buscando por ahí encontré esto:

http://www.ibrtses.com/delphi/intelhex.html
http://www.programmersheaven.com/dow...0/ZipView.aspx

Igual te ayuda.


Salu2
Responder Con Cita
  #8  
Antiguo 03-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola ixMike.

Interesante esos enlaces, el primero lo estoy estudiando porque tendre que hacer uso de esas rutinas.

Un Saludo.
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
Fichero Ini nelem Varios 2 03-01-2008 16:05:40
Tamaño de los ejecutables de Lazarus JULIPO Lazarus, FreePascal, Kylix, etc. 15 07-11-2007 17:41:36
Tamaño de mi ejecutable Ricardo Alfredo Varios 13 07-02-2007 20:47:14
recorrer listbox para modificar tamaño del form DM2005 Varios 1 15-08-2006 14:11:10
Obtener un fichero adjunto a un nodo de un fichero XML muntasil Internet 0 18-07-2006 12:57:57


La franja horaria es GMT +2. Ahora son las 21:58:44.


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