Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 09-12-2013
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Os propongo una función en Ansi C para convertir una cadena contenida en un buffer de tamaño conocido y no ASCIIZ (como el buffer obtenido de la lectura de un archivo de texto) en texto hexadecimal:

Código:
//---------------------------------------------------------------------------
// Convierte un buffer binario en una cadena de números hexadecimales
bool BinToStr(BYTE *Bin, DWORD BinSize, char* Str, DWORD *StrSize)
{
  if(!Str){
     *StrSize = 2*BinSize + 4; // '\0' y dos caracteres de mas para el final en "\r\n"
     return false;
  }
  
  if(*StrSize <  2*BinSize + 4) return false;
 
  for(int i=0; i<BinSize; i++){
    *Str = (0x0F & *Bin>>4) + 48;
    *(Str+1) = (0x0F & *Bin) + 48;
    if(*Str > '9') *Str += 7;
    if(*(Str+1) > '9') *(Str+1) += 7;
    Bin++; Str+=2;
  }
  *Str++ = '\r'; *Str++ = '\n'; *Str = 0;
  return true;
}
El resultado lo devuelve en otro buffer de tamaño mínimo 2*BinSize + 4
Si pasamos como argumento Str = NULL nos devuelve el tamaño del buffer necesario (2*BinSize + 4)


Es una función que yo he usado para esos fines.

Saludos.

Última edición por escafandra fecha: 09-12-2013 a las 21:15:35.
Responder Con Cita
 


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
solucion a Error Invalid blob handle in record buffer memehua Conexión con bases de datos 2 26-09-2011 22:03:14
Eliminar Buffer TCP jlsc Varios 2 16-06-2010 22:13:00
ERROR:ShLink.GetPath(Buffer, Sizeof(Buffer), Data, SLGP_UNCPRIORITY) Mav Varios 2 26-05-2008 21:31:49
Bitmap buffer fitolanga Gráficos 4 21-04-2007 15:58:29
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" varuhs Conexión con bases de datos 4 22-01-2007 21:19:53


La franja horaria es GMT +2. Ahora son las 21:26:02.


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