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

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 20-09-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por ecfisa Ver Mensaje
Hola

El tamaño es el que tiene cada archivo previo a la concatenación.

Deberías obtener y guardar esos valores de tamaño en algún sitio, por que desde el archivo compuesto, es imposible obtener los tamaños de los diferentes archivos agregados.

De otro modo, habría que poner marcas para poder identificar la finalización de cada archivo.

Saludos
O bien armar una especie de Header a modo tabla que contenga la cantidad de items/archivos y sus respectivos tamaños. Luego es cosa de posicionarse en el lugar correcto y leer buffers de sus respectivos tamaños. Naturalmente este Header debe ser lo primero del archivo del archivo.

El header debe contener en este orden:
0.Cantidad de archivos
1. Tamaño del archivo #1
2. Tamaño del archivo #2
...
N. Tamaño del archivo #N

Luego viene la data del primer archivo, etc.

Lo que debe de cuidarse es de leer la cantidad justa de bytes. Por eso debe definirse adecuadamente que tipo de dato se va a usar para almacenar esta información... ¿Cuántos archivos se tiene pensado poder concatenar? Para 255 solo es suficiente con leer un byte... pero si se necesita de más se debe usar un SmallInt por lo menos.
Luego debe cuidarse también el tamaño de los archivos... Al menos las funciones que tiene Delphi y que actúan de indirección hacia la API de Windows, devuelven un Int64... ahí ya tienes unos cuantos bytes más por leer

Asi que de pronto, mínimo necesitas:
1. Leer el primer byte para saber la cantidad de archivos // si vas a permitir más de 255 necesitas 2 o más bytes... tu pones el límite!
2. Leer los siguientes 8 bytes para saber el tamaño del archivo
3. Ir a la posición correspondiente y leer el buffer de ese mismo tamaño
4. Repetir 2-4 según cantidad de archivos

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



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
Agregar archivos en un TFileStream Ramsay Varios 4 19-09-2016 21:31:36
Ayuda con archivos binarios usando TFileStream Eze32 OOP 2 04-06-2013 16:18:07
Manejo de Archivos con TFileStream nlsgarcia Varios 6 02-09-2011 02:26:36
Uso de TFileStream esocrates Varios 4 09-04-2005 23:47:17
¿Como dividir un archivo en varios archivos? Raisen Varios 3 24-07-2004 03:16:28


La franja horaria es GMT +2. Ahora son las 19:18:21.


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