| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
bobbylanuit Ens

Registrado: 06 Jul 2005Mensajes: 31
|
Publicado: Vie 30 Nov, 2007 4:02 pm Asunto: Base64 |
|
|
De nuevo a vueltas con CAPICOM estoy intentando ahora codificar un fichero para que me devuelva una cadena en base64.
La forma de hacerlo la tengo ya resuelta, la documentación de CAPICOM es bastante extensa. Lo que no se es como cargar un fichero para codificarlo a base64 para devolver un array ya codificado o volverlo a escribir en otro fichero con extensión .b64
Muchas gracias de antemano. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 02 Dic, 2007 7:25 am Asunto: |
|
|
Creo que la parte que complica la tarea un poco es que hay que pasar los datos en un VARIANT SAFEARRAY, por tanto copiar el archivo en el mismo, ya que leerlo se puede hacer de muchas maneras.
A ver si te ayuda este pequeño ejemplo:
| Código: | // Añadimos: #include<memory>
CoInitialize(0);
// Abrimos el archivo de entrada y creamos el de salida
std::auto_ptr<TFileStream> fsIn(new TFileStream("c:\\foto.jpg",
fmOpenRead | fmShareDenyWrite));
std::auto_ptr<TFileStream> fsOut(new TFileStream("c:\\prueba.b64",
fmOpenWrite | fmCreate | fmShareExclusive));
// Creamos un VarArray y copiamos en el todo el fichero de entrada
int bounds[2] = {1, fsIn->Size};
TVariant v(VarArrayCreate(bounds, 1, varByte));
PVOID buffer = VarArrayLock((Variant*)&v);
fsIn->Read(buffer, fsIn->Size);
VarArrayUnlock((Variant*)&v);
// Hacemos la conversion a Base64 y lo salvamos
TCOMIUtilities util = CoUtilities::Create();
TOleString strBin(util->ByteArrayToBinaryString(v));
TOleString strB64(util->Base64Encode(strBin));
String strOut(strB64);
fsOut->Write(strOut.c_str(), strOut.Length()); |
|
|
| Volver arriba |
|
 |
bobbylanuit Ens

Registrado: 06 Jul 2005Mensajes: 31
|
Publicado: Lun 03 Dic, 2007 9:52 pm Asunto: |
|
|
Muchas gracias, se agradece la respuesta.
Un saludo. Roberto. |
|
| Volver arriba |
|
 |
|