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 16-07-2011
Tortuguica Tortuguica is offline
Miembro
 
Registrado: sep 2010
Ubicación: Elche, España
Posts: 46
Poder: 0
Tortuguica Va por buen camino
Creación de tipos de archivo

Hola a todos: En primer lugar, quiero pedir disculpas por si no estoy en el foro correcto. Y en segundo lugar, os explico cuál es mi problema: me gustaría compactar tres archivos (txt, rtf, ini) en un único archivo, con una extensión nueva, y, después, poder acceder a los archivos que contiene, claro. ¿Puede alguien darme una idea de por dónde empezar? He buscado en Google y no he encontrado nada. Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 16-07-2011
Tortuguica Tortuguica is offline
Miembro
 
Registrado: sep 2010
Ubicación: Elche, España
Posts: 46
Poder: 0
Tortuguica Va por buen camino
Aclaración

Bueno, antes he olvidado preguntar si es posible hacer eso. Gracias de nuevo.
Responder Con Cita
  #3  
Antiguo 16-07-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Puedes comprimirlo en un zip y extraerlo cuando lo vayas a necesitar, supongo que será eso lo que quieres, ¿no?
Responder Con Cita
  #4  
Antiguo 16-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Tortuguica.

Si lo creo posible.

Es sencillo concatenar los tres archivos en un único archivo si se convierten todos a formato texto por ejemplo. Lo que se complica es la recuperación en el formato adecuado.
Los archivos .txt e .ini podrías leerlos y trabajar directamente de archivo a memoria, pero con el .rtf tendrías que guardarlo en un archivo temporal para luego cargarlo con un RichEdit por ejemplo.

Supongamos que el orden de agrupación es: .txt + .ini + .rtf
Conociéndo con antelación la longitud en bytes (caracteres) de cada uno sería cosa de leer los N caracteres del txt, los N del .ini y los restantes corresponderán al .rtf

Pero no sé si es eso lo que buscas hacer...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 16-07-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Basta con escribir una cabecera delante de cada archivo. Luego se escriben todos uno detrás de otro precedidos de su cabecera.
Su cabecera puede ser una estructura que contenga el tamaño de la misma, nombre del archivo y su longitud.

Con esta estructura se pueden extraer los archivos uno detrás de otro sin importar el orden, tamaño, tipo ni número de los mismos.


Saludos.
Responder Con Cita
  #6  
Antiguo 16-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola escafandra.

Yo había pensado en eso, es más había probado este código y funciona bién:
Código Delphi [-]
function FileLength(const NomArch:String): DWord;
var
  Hndw: integer;
begin
  Hndw:= FileOpen(NomArch, 0);
  try
    Result:= (GetFileSize(Hndw, nil));
  finally
    FileClose(Hndw);
  end;
end;

procedure Concatenar(const FileNames: array of string);
var
  i: Integer;
  Ori, Des: TextFile;
  s: string;
  Len: DWord;
begin
  AssignFile(Des,'C:\TODOS.TXT');
  Rewrite(Des);
  for i:=  High(FileNames) downto Low(FileNames) do
  begin
    Len:= FileLength(FileNames[i]);
    AssignFile(Ori, FileNames[i]);
    Reset(Ori);
    Writeln(Des,FileNames[i]+':'+IntToStr(Len));
    while not eof(Ori) do
    begin
      ReadLn(Ori,s);
      Writeln(Des,s);
    end;
    Flush(Des);
    CloseFile(Ori);
  end;
  CloseFile(Des);
end;
Pero luego me puse a pensar, ¿ Como encuentro despues la cabecera si un archivo contiene el identificador que uso para distinguirla ?
Es decir como hacer para usar un identificador que sea diferente a cualquier combinación de caracteres posibles dentro de un archivo.
Por eso luego pensé en obtener previamente el tamaño en bytes.

¿ Se te ocurre algún modo ? Por que de esa forma es muchísimo más simple.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-07-2011 a las 17:51:49.
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
Hora de creación de archivo Belaix Varios 2 15-11-2008 21:13:53
Cambiando la fecha de creacion de un archivo cascarrabias Varios 2 10-03-2008 18:24:48
Asociar Aplicación y Tipos de Archivo gaps2k Varios 1 10-04-2007 19:15:51
Cómo filtrar por tipos de archivo en un componente ShellTreeView MaMu API de Windows 3 14-08-2006 06:19:19
Creacion de un archivo HTML... JorgeBec Varios 2 30-07-2004 13:15:51


La franja horaria es GMT +2. Ahora son las 07:17:39.


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