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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2010
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 17
kdemia Va por buen camino
Primero que nada, muchas gracias por tu tiempo LoPiTaL.

El único error que sale es q dice que no esta declarado el 'Count' de LStream.Count.. desp hay un par de errores de sintaxis como por ejemplo le falta el do begin al while
Responder Con Cita
  #2  
Antiguo 29-05-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 18
LoPiTaL Va por buen camino
Cierto, no es Count es LStream.Size, jeje se me pasó!

Espero que te haya servido.
Un saludo,
LoPiTaL
Responder Con Cita
  #3  
Antiguo 29-05-2010
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 17
kdemia Va por buen camino
me salta el siguiente error: EReadError 'Stream Read Error', puse q guarde igual el archivo en finally y al principio del archivo se guarda el EOF ..
Responder Con Cita
  #4  
Antiguo 29-05-2010
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 18
LoPiTaL Va por buen camino
Diría que eso es porque te pasas del tamaño del archivo al leerlo de 4 en 4 bytes (el tamaño del archivo no es múltiplo de 4, por lo que en la últia lectura falla). Lee en lugar de 4 en 4, de 1 en 1 y así no fallará.

Un saludo,
LoPiTaL
Responder Con Cita
  #5  
Antiguo 30-05-2010
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 17
kdemia Va por buen camino
perfecto funciono perfectamente... muchas gracias LoPiTal te lo agradezco. sos un groso
Responder Con Cita
  #6  
Antiguo 03-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 14
elmago00 Va por buen camino
amigos, intente esto, pero la verdad no va siempre da read error. y lo cambie a 1, pero nada;

Código Delphi [-]
var
  LStream: TMemoryStream;
  miVar: longWord;
  miStr: string;
  todasMisStrings: TStringList;
  I: integer;
begin

  if not OpenDialog1.Execute then Exit;  //Supongo que od es un Diálogo para seleccionar un archivo....

  LStream:=TMemoryStream.Create;
  todasMisStrings:=TStringList.Create;
  try
    LStream.LoadFromFile(OpenDialog1.FileName);
    LStream.Seek(0,soBeginning);
    miStr:='';  //Inicializamos la str....
    I:=0;
    while (I < LStream.Size - 1) do
      LStream.ReadBuffer(miVar, sizeOf(longWord));
      miStr:=miStr+IntToHex(miVar,8);  //8 es el nº de caracrteres hexadecimales que deseas para la conversión - 4 bytes= 8 caracteres hex.
      miStr:=miStr+' ';  //Añadimos el espacio que deseabas
      if (I mod 32)=0 then begin  //Cada 32 bytes, añadimos una nueva línea
        todasMisStrings.Add(miStr);
        miStr:='';  //Volvemos a empezar para la siguiente línea.
      end;
      inc(I,1);  //Incrementamos en 4 el valor de I


  finally

     LStream.Free;
     todasMisStrings.Free;
  end;

intente este metodo, pues lo que quiero es leer el archivo en hexadecimal y luego modificar un cadena de ese archivo.
Responder Con Cita
  #7  
Antiguo 03-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola elmago00.

Acabo de probar el código de LoPiTaL y funciona perfectamente, sólo faltaba un begín del while (omisiones que suelen pasar cuando publicamos algún código).

La prueba:
Código Delphi [-]
{
 Agregué el parámetro "od" por que ConvertBinFileToTxtFile no es método del Form,
 y el parámetro "Destino" para darle mas versatilidad al procedimiento  
}
procedure ConvertBinFileToTxtFile(od: TOpenDialog; const Destino: TFileName);
var
  LStream: TMemoryStream;
  miVar: longWord;
  miStr: string;
  todasMisStrings: TStringList;
  I: integer;
begin
  if not od.Execute then Exit;

  LStream:= TMemoryStream.Create;
  todasMisStrings:=TStringList.Create;
  try
    LStream.LoadFromFile(od.FileName); //Supongo que od es un Diálogo para seleccionar un archivo....
    LStream.Seek(0,soBeginning);
    miStr:='';
    I:=0;
    while (I < LStream.Size-1) do
    begin
      LStream.ReadBuffer(miVar, sizeOf(longWord));
      //8 es el nº de caracrteres hexadecimales que deseas para la conversión - 4 bytes= 8 caracteres hex.
      miStr:=miStr+IntToHex(miVar,8);  
      miStr:=miStr+' ';  //Añadimos el espacio que deseabas
      if (I mod 32) = 0 then //Cada 32 bytes, añadimos una nueva línea
      begin
        todasMisStrings.Add(miStr);
        miStr:='';  //Volvemos a empezar para la siguiente línea.
      end;
      inc(I,4);  //Incrementamos en 4 el valor de I
    end;
    todasMisStrings.SaveToFile(Destino);
  finally
     LStream.Free;
     todasMisStrings.Free;
  end;
end;

{ Llamada de ejemplo }
procedure TForm1.Button1Click(Sender: TObject);
begin
  ConvertBinFileToTxtFile(OpenDialog1, 'C:\miArchivoDestino.txt');
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Resta Hexadecimal ??? Ðαяισš Varios 6 15-09-2010 11:34:17
Pasar de Hexadecimal a Decimal chinchan C++ Builder 3 21-01-2008 04:18:57
Numero hexadecimal de 32 caracteres adebonis Varios 2 15-11-2007 15:11:14
como pasar de asm a hexadecimal? javier20 Varios 5 09-10-2007 19:39:08
de Hexadecimal a Decimal Carlos A Ortega Varios 1 04-08-2003 22:14:56


La franja horaria es GMT +2. Ahora son las 01:27:03.


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