Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2006
Status Quo Status Quo is offline
Miembro
 
Registrado: may 2006
Posts: 23
Poder: 0
Status Quo Va por buen camino
Convertir variable a bytes

Hola a todos!

Estoy intentando convertir unas variables a tipo byte. Cómo lo hago? No encuentro ningún método apropiado y me he vuelto loco!

Hay métodos específicos para cada tipo de variable? No se, estoy hecho un lio.

Muchas gracias de antemano.

Status Quo
Responder Con Cita
  #2  
Antiguo 20-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Dices lo que quieres conseguir: una variable de tipo "Byte", pero, no dices de qué tipo es la variable que quieres convertir al tipo "byte".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 20-05-2006
Status Quo Status Quo is offline
Miembro
 
Registrado: may 2006
Posts: 23
Poder: 0
Status Quo Va por buen camino
Lo que quiero es añadir unos caracteres a un stream. Había pensado que a lo mejor se podía hacer convirtiendo esos caracteres en tipo byte...

No se. Lo que quiero es dividir un fichero en trozos y enviarlos con una cabecera. (es para un protocolo de envío de ficheros entre pcs que estoy programando).
Responder Con Cita
  #4  
Antiguo 20-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
No hay ningun problema es escribir strings o chars en un stream, no hace falta convertirlos en bytes. Por ejemplo:

Código Delphi [-]
var
  Stream: TMemoryStream;
  S: String;
  C: Char;
  Buffer: array[0..255] of byte;
begin
  S:= 'Hola mundo';
  C:= ',';
  FillChar(Buffer,Sizeof(Buffer),0);
  Stream:= TMemoryStream.Create;
  try
    // Podemos escribir un string
    Stream.WriteBuffer(PChar(S)^,length(S));
    // Podemos escribir un char
    Stream.WriteBuffer(C,1);
    // O un un array
    Stream.WriteBuffer(Buffer,Sizeof(buffer));
    // Y luego podemos guardarlo para ver como quedo
    Stream.SaveToFile('Prueba.txt');
  finally
    Stream.Free;
  end;
end;
Responder Con Cita
  #5  
Antiguo 20-05-2006
Status Quo Status Quo is offline
Miembro
 
Registrado: may 2006
Posts: 23
Poder: 0
Status Quo Va por buen camino
ahhh! gracias de verdad!!!!!!!!!!!Voy a probarlo inmediatamente.Ahora te cuento.
Un saludo
gracias
Responder Con Cita
  #6  
Antiguo 20-05-2006
Status Quo Status Quo is offline
Miembro
 
Registrado: may 2006
Posts: 23
Poder: 0
Status Quo Va por buen camino
Una cosa Seoane,

Podrías decirme cómo añado después los bytes del fichero y cómo extraigo del stream la información enviada en la cabecera??

Igual es una tontería pero estoy perdidísimo...
Responder Con Cita
  #7  
Antiguo 20-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Vamos a ver, sin saber lo que intentas hacer no se si podre ayudarte. Pero aqui te dejo dos ejemplos, puede que saques alguna cosa util de ellos:

En este ejemplo metemos en un stream una cabecera con el tamaño del archivo, y a continuacion el archivo.
Código Delphi [-]
var
  Stream: TMemoryStream;
  Archivo: TFileStream;
  Nombre: string;
  Cabecera: String;
begin
  // Nombre del archivo
  Nombre:= 'd:\Prueba.jpg';
  Stream:= TMemoryStream.Create;
  try
    Archivo:= TFileStream.Create(Nombre,fmOpenRead);
    try
      // En la acbecera vamos a colocar el tamaño del archivo
      Cabecera:= IntToStr(Archivo.Size);
      Stream.WriteBuffer(PChar(Cabecera)^,length(Cabecera)+1);
      // Y cargamos el resto del archivo
      Stream.CopyFrom(Archivo,0);
      // Ahora lo guardamos paar ver el resultado
      Stream.SaveToFile('d:\Archivo.bin');
    finally
      Archivo.Free;
    end;
  finally
    Stream.Free;
  end;
end;

En este otro cargamos un archivo en un stream, extramemos el contenido de la cabecera y a continuacion copiamos el resto del stream en otro stream.
Código Delphi [-]
var
  Stream: TMemoryStream;
  Archivo: TFileStream;
  Cabecera: String;
  Size: Integer;
begin
  // Nombre del archivo
  Stream:= TMemoryStream.Create;
  try
    Stream.LoadFromFile('d:\Archivo.bin');
    Archivo:= TFileStream.Create('d:\Prueba.jpg',fmCreate);
    try
      Cabecera:= String(PChar(Stream.Memory));
      ShowMessage(Cabecera);
      Size:= StrLen(PChar(Stream.Memory))+1;
      Stream.Seek(Size,soFromBeginning);
      Archivo.CopyFrom(Stream,Stream.Size-Size)
    finally
      Archivo.Free;
    end;
  finally
    Stream.Free;
  end;
end;
Responder Con Cita
  #8  
Antiguo 20-05-2006
Status Quo Status Quo is offline
Miembro
 
Registrado: may 2006
Posts: 23
Poder: 0
Status Quo Va por buen camino
Si, me has entendido!!! Gracias!! Gracias por tomarte la molestia de ayudarme. Ahora con lo que me has pasado voy a tratar de trocear el archivo y a cada trozo añadirle la cabecera. Me has sido de gran ayuda de verdad.Muchas gracias(a ver si lo consigo...que este programa me tiene de los nervios)

NOTA
Lo que intento hacer:
Intento poder mandar un fichero a trozos de un pc a otro. Cada trozo que envío tiene que tener una cabecera indicando el menos el tipo de trama que envío y el tamaño...no se explicarlo mejor...
Si lo consigo hacer lo publico...porque me está costando lo suyo...

Última edición por Status Quo fecha: 20-05-2006 a las 21:12:15.
Responder Con Cita
Respuesta



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
saber bytes que se estan transferiendo Spynosa Internet 0 19-05-2005 11:57:33
4 bytes a un entero ssaavedra Varios 1 09-01-2004 20:12:11
Convertir variable tipo Word a Char andre Varios 2 15-12-2003 20:15:23
Convertir una Variable de String a Integer y Viceversa. aleidania Varios 1 13-07-2003 16:35:37
Cuantos Bytes estoy enviando por FTP? pinoxo Internet 4 27-06-2003 03:05:00


La franja horaria es GMT +2. Ahora son las 02:16:52.


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