Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 28-01-2024
Delphi01 Delphi01 is offline
Miembro
 
Registrado: nov 2015
Ubicación: Barcelona,España
Posts: 68
Poder: 9
Delphi01 Va por buen camino
Cita:
Empezado por mandilium Ver Mensaje
Buen día,
tengo problemas con el envió de facturas masivas para la facturación electrónica, según lo que indican se debe seguir con un código en java, pero estoy usando delphi, aparte de ello es solo para un archivo, el código que uso para la compresión y envió individual:
Código:
procedure compressGzip(factura, agzip : string);
var LInput, LOutput: TFileStream;
    LZip: TZCompressionStream;
begin
  LInput := TFileStream.Create(factura, fmOpenRead);
  LOutput := TFileStream.Create(agzip, fmCreate);
  LZip := TZCompressionStream.Create(LOutput, zcDefault, 15 + 16);
  LZip.CopyFrom(LInput, LInput.Size);
  LZip.Free;
  LInput.Free;
  LOutput.Free;
end;
no tengo ningún problema al usarlo y hacer el envió, mi pregunta va como puedo generarlo para que sean varios archivos xml no solo uno.
Agradezco sus comentarios
Para poder enviar múltiples archivos XML en lugar de solo uno, puedes modificar la función 'compressGzip' en tu código Delphi para recibir una lista de nombres de archivo en lugar de solo uno. Luego, puedes recorrer esa lista y comprimir cada archivo XML por separado. Aquí tienes un ejemplo de cómo podrías hacerlo:
Código:
uses
  System.IOUtils, System.Classes, System.Zip;

procedure CompressGzip(facturas: TArray<string>);
var
  i: Integer;
  LZip: TZipFile;
  LInput, LOutput: TFileStream;
begin
  LZip := TZipFile.Create;
  try
    LOutput := TFileStream.Create('facturas.zip', fmCreate);
    try
      LZip.Open(LOutput, zmWrite);
      
      for i := 0 to Length(facturas) - 1 do
      begin
        LInput := TFileStream.Create(facturas[i], fmOpenRead);
        try
          LZip.Add(LInput, ExtractFileName(facturas[i]));
        finally
          LInput.Free;
        end;
      end;
      
      LZip.Close;
    finally
      LOutput.Free;
    end;
  finally
    LZip.Free;
  end;
end;

//Aquí está cómo puedes llamar a esta función con tus archivos XML:

var
  facturas: TArray<string>;
begin
  SetLength(facturas, 3); // Establece la longitud del array según la cantidad de archivos XML que tengas
  
  facturas[0] := 'ruta_factura1.xml';
  facturas[1] := 'ruta_factura2.xml';
  facturas[2] := 'ruta_factura3.xml';
  
  CompressGzip(facturas);
end;
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
Cómo extraer contenido de un archivo gzip Casimiro Notevi Varios 7 06-07-2023 20:21:28
Descomprimir un archivo gzip con Delphi jplj Varios 7 09-05-2013 22:52:40
Empaquetar Delphi nasedo Varios 2 19-11-2010 11:24:11
Empaquetar gráficos |NoName| Varios 0 29-01-2007 19:34:55
libreria gzip.dll locotenentul Varios 3 14-09-2005 18:23:02


La franja horaria es GMT +2. Ahora son las 18:11:22.


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