Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   leer texto o ver foto dentro de un rar (https://www.clubdelphi.com/foros/showthread.php?t=92444)

DarkSton 31-10-2017 14:43:25

leer texto o ver foto dentro de un rar
 
hola amigos de clubdelphi bueno quiero saver si hay una forma de leer un texto dentro de un rar ejemplo:
tengo un archivo test.rar con clave y dentro del rar hay un texto o una foto , hay forma de leer el texto o ver la foto desde un formen delphi ?,

movorack 31-10-2017 16:05:27

Hola, Si se puede.

En la clase TZipFile tienes la función Read y puedes llamarla con un Stream

Código Delphi [-]
procedure Read(const FileName: string; out Bytes: TBytes); overload;
procedure Read(Index: Integer; out Bytes: TBytes); overload;
procedure Read(const FileName: string; out Stream: TStream; out LocalHeader: TZipHeader); overload;
procedure Read(Index: Integer; out Stream: TStream; out LocalHeader: TZipHeader); overload;

Para listar los archivos dentro, debes abrir el Zip y recorrerlo

Código Delphi [-]
Zip := TZipFile.Create;
try
  Zip.Open(ZipFileName, TZipMode.zmRead);
  For FileName in Zip.FileNames do
  begin
    //Acá validas el archivo que quieres leer y ejecutas tu rutina dependiendo del tipo de archivo. 
  end;
finally
  Zip.Close;
  FreeAndNil(Zip);
end;

DarkSton 31-10-2017 16:08:48

esto es para delphi7 me podrias dejas un ejemplo dentro del
begin
//Acá validas el archivo que quieres leer y ejecutas tu rutina dependiendo del tipo de archivo.
end;
:D

movorack 31-10-2017 16:51:08

Cita:

Empezado por DarkSton (Mensaje 522159)
esto es para delphi7

Estoy muy apenado contigo no haber tenido en cuenta las versiones anteriores y ponerte a comentar nuevamente para que especifiques el IDE con el que trabajas. De todos modos, podrías revisar la ZipMaster a ver si con esa librería puedes hacer una lectura en memoria.

Cita:

Empezado por DarkSton (Mensaje 522159)
me podrias dejas un ejemplo dentro del
begin
//Acá validas el archivo que quieres leer y ejecutas tu rutina dependiendo del tipo de archivo.
end;
:D

Claro no faltaba mas. Aunque el ejemplo es con TZipFile. Tendrías que ver como se hace con la librería que decidas usar y sea compatible con D7

Código Delphi [-]
Zip := TZipFile.Create;
try
  Zip.Open(ZipFileName, TZipMode.zmRead);
  For FileName in Zip.FileNames do
  begin
    if ExtractFileExt(FileName).Trim.ToUpper = '.TXT' then
    begin
      TempStringList := TStrings.Create;
      try
        Zip.Read(FileName, AStream, ALocalHeader);
        TempStringList.LoadFromStream(AStream);
        ShowMessage(TempStringList.Text);
      finally
        FreeAndNil(TempSTringList);
      end;
    end;
  end;
finally
  Zip.Close;
  FreeAndNil(Zip);
end;

DarkSton 03-11-2017 11:50:36

El error es mio por no decir la version de delphi que estoy usando ,hoy lo probare .


La franja horaria es GMT +2. Ahora son las 23:02:27.

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