Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2018
ANCELMO ANCELMO is offline
Miembro
 
Registrado: Nov 2016
Posts: 16
Poder: 0
ANCELMO Va por buen camino
convertir un file a byte

Buenos dias.

he estado buscando como pasar un archivo X a bits pero no he encontrado como, me prodian dar una idea de como realizarlo o si existe una funcion que lo haga me la compartiera porfavor.
Responder Con Cita
  #2  
Antiguo 03-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.647
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
"File a byte", "file a bit", ¿qué es lo que necesitas hacer exactamente?
Responder Con Cita
  #3  
Antiguo 04-08-2018
ANCELMO ANCELMO is offline
Miembro
 
Registrado: Nov 2016
Posts: 16
Poder: 0
ANCELMO Va por buen camino
mira tengo que enviar un xml por un web service en el web service ha toca enviar unas etiquetas endonde se coloca en archivo en bytes para que al otro lado lo puedan crea, del mismo modo ese arreglo de bytes cuando lo retornen necesito crearlo
Responder Con Cita
  #4  
Antiguo 04-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: Jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 654
Poder: 15
gmontes Va por buen camino
en delphi 7 yo tomo el archivo xml formado y lo convierto asi:


Código Delphi [-]
function TProveedorFinkOk.FileToByteArray( const FileName : string ) : TByteDynArray;
const BLOCK_SIZE=1024;
var BytesRead, BytesToWrite, Count : integer;
 F : FIle of Byte;
 pTemp : Pointer;
begin
 AssignFile( F, FileName );
 Reset(F);
try
 Count := FileSize( F );
 SetLength(Result, Count );
 pTemp := @Result[0];
 BytesRead := BLOCK_SIZE;
 while (BytesRead = BLOCK_SIZE ) do
 begin
  BytesToWrite := Min(Count, BLOCK_SIZE);
  BlockRead(F, pTemp^, BytesToWrite , BytesRead );
   pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);
  Count := Count-BytesRead;
 end;
finally
  CloseFile( F );
 end;
end;

hago esto porque la rutina original no me tomaba la Ñ , ñ, y otros campos mas

esta rutina es la original

Código Delphi [-]

function TProveedorFinkOk.UTF8Bytes(const s: UTF8String): TBytedynArray; // sacada de http://stackoverflow.com/questions/5...array-in-utf-8
begin
 {$IF Compilerversion >= 20}Assert(StringElementSize(s)=1){$IFEND};
  SetLength(Result, Length(s));
  if Length(Result)>0 then
    Move(s[1], Result[0], Length(s));
end;

y esta es la rutina que timbra en finkok

Código Delphi [-]
function TProveedorFinkOk.TimbrarDocumento2(const aComprobante:
    string; const aTransaccion: Int64): TCadenaUTF8;
var
  respuestaTimbrado: TFinkOkRespuestaTimbrado;
  sXML:TByteDynArray;
begin
  //sXML := UTF8Bytes(aComprobante.XML);

  sXML := FIleToByteArray(aComprobante);

  respuestaTimbrado := fwsTimbradoFinkOk.stamp(sXML,fCredencialesPAC.RFC,fCredencialesPAC.Clave);
  if Trim(respuestaTimbrado.CodEstatus) <> '' then
    Result := ExtraerNodoTimbre(respuestaTimbrado.xml);
  if Trim(respuestaTimbrado.CodEstatus) = '' then
   begin
   {$IFDEF CODESITE}
    CodeSite.Send('Falla Validacion Error No.', respuestaTimbrado.Incidencias[0].CodigoError+'/Detalle :'+respuestaTimbrado.Incidencias[0].MensajeIncidencia);
   {$ELSE}
    raise exception.Create('Falla Validacion Error No.'+ respuestaTimbrado.Incidencias[0].CodigoError+'/Detalle :'+respuestaTimbrado.Incidencias[0].MensajeIncidencia);
   {$ENDIF}
   end;
end;

lo hice asi porque en delphi 7 tengo problemas con las conversiones de tipos que en versiones mas recientes no hay problema

espero empezar a migrar de delphi 7 a lo mas reciente pronto

estas rutinas las cambie del original que se encuentra en el proyecto bambucode para construir el cfdi 3.3 y timbrar en finkok
__________________
Todos llevamos nuestros demonios a cuestas..
Responder Con Cita
  #5  
Antiguo 07-08-2018
Alex Mireles Alex Mireles is offline
Miembro
 
Registrado: Nov 2014
Posts: 32
Poder: 0
Alex Mireles Va por buen camino
Hola Amigo,
Para tener mas opciones de solución, revisa los temas de

EncodeDecodeBase64


https://stackoverflow.com/questions/...-base64-delphi


Nota:
Suponiendo que tu proyecto utiliza SOAP y WebServices.....Un archivo binario no se puede transportar por HTTP debido a que se solo se permite texto, lo que se debe hacer es convertir esa cadena de bytes "binarios" a bytes de "texto" y asi hacer el envio por HTTP. (Conceptos de Send Request y Get Response)..
Responder Con Cita
  #6  
Antiguo 07-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.647
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira este hilo.
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
Convertir imagen en Array of Byte jlrdz OOP 4 04-05-2015 17:47:56
convertir hex a Byte Lizeth Varios 4 07-04-2011 21:23:41
Como convertir un string a un array de byte K-ba Varios 2 14-02-2011 00:27:07
File of Byte kdemia Varios 2 27-05-2010 20:21:36
File of byte y filesize madmai Varios 1 11-07-2008 19:49:43


La franja horaria es GMT +2. Ahora son las 19:46:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi