¿cómo puedo obtener el contenido de un exe archivo y convertirlo en Base64 codificación ?

Editar

Yo uso D2010 y quiero saber ¿cómo es posible que exactamente ?

  • open an exe file
  • convert its content into base64
InformationsquelleAutor Kermia | 2011-04-26

2 Comentarios

  1. 60

    En Delphi 2009/2010/XE hay unidad EncdDecd.pas (Soap.EncdDecd.pas para Delphi XE2), que contiene las funciones EncodeBase64 y DecodeBase64. Usted puede cargar el archivo exe en un memorystream y, a continuación, llamar a EncodeBase64.

    function EncodeFile(const FileName: string): AnsiString;
    var
      stream: TMemoryStream;
    begin
      stream := TMemoryStream.Create;
      try
        stream.LoadFromFile(Filename);
        result := EncodeBase64(stream.Memory, stream.Size);
      finally
        stream.Free;
      end;
    end;
    • Yo uso D2010 y quiero saber ¿cómo es posible que exactamente ? 1-open an exe file 2-convert its content into base64 ?
    • Sabía usted mira a ver si D2010 incluye la EncdDecd unidad? @Uwe código muestra exactamente cómo usarlo.
    • La unidad también está disponible en D2010. He editado mi respuesta a incluir un ejemplo.
    • Para aquellos con antiguas versiones de Delphi, funciones equivalentes se encuentran en algún lugar en la Indy Codificación Mime cosas.
    • específicamente, Indy IdCoderMIME unidad contiene base64 habilitados de clases.
    • gracias Remy. ¿Alguna vez se útil para tener alrededor. 🙂
    • También existe la CryptBinaryToString función de Crypt32.dll (WinXP+) para aquellos con mayores Delphi versión.
    • Y cómo decodificar en el archivo Original?
    • Te refieres, quieres saber cómo guardar un AnsiString a un archivo? Supongo que cuenta como una cuestión separada…
    • Ser conscientes del hecho de que EncodeBase64 de la EncdDecd.pas de la unidad se inserte 2 AnsiChar s (#$D#$A == CRLF) cada 75 codificado en base64 chars. Usted no tiene manera de decirle que no lo hiciera. Al menos la versión de java tiene un booleano para controlar si desea que esta «inteligencia» adicional. Espero que ayude.
    • Esta respuesta sólo salvó la vida, para el envío de archivos binarios a través de JSON 😀
    • En las últimas versiones de Delphi (no estoy seguro de donde se empezó a): se utiliza el Sistema.NetEncoding; TNetEncoding.Base64.EncodeBytesToString(Stream.La Memoria, La Secuencia.El tamaño)
    • FYI, el TNetEncoding mencionado por DaveNottage fue añadido en XE7, como me acabo de enterar. Uso EncdDecd con versiones anteriores.

  2. 9

    En la antigua Delphi versiones, puede utilizar synapse (enlace aquí)

    Acaba de poner synacode.pas en sus usos e llamada EncodeBase64/EncodeBase64.

    Saludos

    • Sinapsis no viene con cualquier versión de Windows. Tal vez quisiste indy?
    • van de Voort. No, me refiero a la sinapsis. Mira el enlace.
    • Mi mal, me refería a que la sinapsis no vienen con Delphi, indy hace.

Dejar respuesta

Please enter your comment!
Please enter your name here