Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elmago00,

Cita:
Empezado por elmago00
...al fin lo conseguí...


Una pequeña corrección :
Código Delphi [-]
procedure TForm1.DumpFile(aFileName:TFileName; SG: TStringGrid; const BPF: Word);
var
  c, i, r, b : Integer;
  Ascii: String;
  Aux: Byte;
  Col : Integer;

begin

  with TMemoryStream.Create do
  try

    LoadFromFile(aFileName);

    Caption:= Format('FileName = %s , FileSize = %d Bytes', [aFileName, Size]);

    // Configurar StringGrid

    SG.ShowHeader := False;
    SG.ShowHorzLines := False;
    SG.ShowVertLines := False;

    for i := 1 to BPF + 2 do
       SG.AddObject(TStringColumn.Create(nil));

    SG.RowCount := (Size div BPF) + 1;
    if (Size Mod BPF) <> 0 then
       SG.RowCount := SG.RowCount + 1;

    for Col := 0 to SG.ColumnCount - 1 do
    begin

        if (Col = 0) then
           SG.Columns[Col].Width := 80;

        if (Col <> SG.ColumnCount - 1) and (Col <> 0) then
           SG.Columns[Col].Width := 30;

        if (Col = SG.ColumnCount - 1) then
           SG.Columns[Col].Width := SG.Canvas.TextWidth('X') * BPF;

    end;

    SG.Cells[0,0]:= 'Offset(h)';
    SG.Cells[SG.ColumnCount-1,0]:= 'ASCII';

    for i:= 0 to BPF-1 do
    begin
      SG.Cells[i+1,0]:= IntToHex(i,2);
    end;

    // Cargar en StringGrid

    Seek(0, soBeginning);
    c:= 0;
    r:= 1;
    b := 0;

    while c < Size do
    begin

      Application.ProcessMessages;

      if CancelProcess then
      begin
         CancelProcess := False;
         Break;
      end;

      SG.Cells[0, r]:= Format('%s',[IntToHex(c, 8)]);
      Ascii:= EmptyStr;
      i:= 0;

      while (i < BPF) and (b < Size) do
      begin
        Read(Aux, SizeOf(Byte));
        SG.Cells[i+1,r]:= IntToHex(Aux,2);
        if Aux = 0 then Aux := 46;
        Ascii:= Ascii + Chr(Aux);
        Inc(i);
        if (b < Size) then Inc(b);
      end;

      SG.Cells[SG.ColumnCount-1,r]:= Format('%s',[Ascii]);
      Inc(c, BPF);
      Inc(r);
      Label1.Text := Format('Procesado Byte %d de %d',[b, Size]);

    end;

  finally

    Free;

  end;

end;
El código anterior en Delphi XE4 bajo Windows 7 Professional x32, corrige el código del Msg #15 en los casos en que los archivos a visualizar no sean múltiplos del factor de visualización (BPF), como se muestra en la siguiente imagen:



El código esta disponible en : Visualizador de Archivos en Hexadecimal v2 en FireMonkey

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 07-05-2014 a las 21:32:39.
Responder Con Cita
  #2  
Antiguo 08-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 13
elmago00 Va por buen camino
muchas gracias, agradezco mucho que hayan compartido su experiencia en este lenguaje conmigo. muchas gracias

Última edición por elmago00 fecha: 08-05-2014 a las 06:18:34.
Responder Con Cita
  #3  
Antiguo 08-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 13
elmago00 Va por buen camino
aprovecho, para preguntarles, se podrá recuperar el archivo con su extensión original.
pues al hacer el cambio en el archivo después de editarlo, no vuelve a funcionar, por que esta en hexadecimal.
¿se puede recuperar el archivo original, pero después de haberlo modificado?.
Responder Con Cita
  #4  
Antiguo 08-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
Cita:
Empezado por elmago00 Ver Mensaje
...
¿se puede recuperar el archivo original, pero después de haberlo modificado?.
Hola elmago00.

No me queda claro desde donde o a partir de qué pensas recuperar el archivo original, pero sin dudas agradecerás haber llamado a este procedimiento antes de modificar el ejecutable:
Código Delphi [-]
procedure BeforeDoingCrap(aFileName: TFileName);
begin
  if not CopyFile(PChar(aFileName),
                  PChar(ExtractFilePath(aFileName)+ChangeFileExt(ExtractFileName(aFileName),'')+'.BAK'),
                  True) then
    MessageBox(0,PChar('Error: ' + SysErrorMessage(GetLastError)), '', MB_ICONERROR);
end;
De este modo, si se estropea el ejecutable, basta con borrarlo y luego renombrar el archivo .BAK como .EXE.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 08-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elmago00,

Cita:
Empezado por elmago00
...se podrá recuperar el archivo con su extensión original pues al hacer el cambio en el archivo después de editarlo, no vuelve a funcionar, por que esta en hexadecimal...
Pregunto:

1- ¿Realizastes las correcciones al código indicadas en el Msg #18?, son vitales para la correcta carga y visualización del archivo en proceso.

2- ¿Que tipo de archivos estas modificando y por que lo haces de esta forma?

3- En el Msg #10 indicas que la aplicación esta hecha en FireMonkey y que tiene más de 40000 líneas de código, ¿Cual es el objetivo de esta aplicación?.

4- ¿Puedes detallar el proceso de modificación del archivo(s) en cuestión?

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 08-05-2014 a las 14:57:06.
Responder Con Cita
  #6  
Antiguo 08-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 13
elmago00 Va por buen camino
hola,
este es el tipo de archivo. por favor descarguen el archivo para que lo vean ustedes mismos.

http://www.mediafire.com/download/xj.../inChipset.rar

quiero restaurarlo a su estado original, después de editarlo. es decir guardar cambios.

les adjunto una imagen para que ven la dirección modificar. y la verdad haber si me ayudan ya que reemplazo la cadena hexadecimal, pero la anterior no se borra,
sino que sigue delante de la otra. como si añadiera string y no reemplaza el hexadecimal, pues debo borrar los siguientes 47 caracteres. solo puedo especificar la dirección, pues el hexadecimal es diferente en todos los archivos. no puedo especificar el hexadecimal a reemplazar. solo la dirección.

es poco difícil verdad. debo entregrarlo en dos días jeje

Última edición por elmago00 fecha: 08-05-2014 a las 20:42:30.
Responder Con Cita
  #7  
Antiguo 08-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 13
elmago00 Va por buen camino
amigos alguna idea de como hacer todo esto? el tiempo se me agota jeje
Responder Con Cita
  #8  
Antiguo 08-05-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
elmago00,

Pregunto:

1- ¿Realizastes las correcciones al código indicadas en el Msg #18?, son vitales para la correcta carga y visualización del archivo en proceso.

2- ¿Que tipo de archivos estas modificando y por que lo haces de esta forma?

3- En el Msg #10 indicas que la aplicación esta hecha en FireMonkey y que tiene más de 40000 líneas de código, ¿Cual es el objetivo de esta aplicación?.

4- ¿Puedes detallar el proceso de modificación del archivo(s) en cuestión?

Espero sea útil

Nelson.
Esperando respuestas...
Responder Con Cita
  #9  
Antiguo 08-05-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 87
Poder: 13
elmago00 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Esperando respuestas...
si hice las correcciones, eso ya esta solucionado, veo el archivo y lo guardo, esta solucionado.
el tipo de archivo se los pues en el link de descarga.
el objetivo ya lo e detallado en el anterior mensaje. asi como el proceso de edición del mismo.


saludos
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
ayuda con este codigo kurono Varios 5 02-04-2014 00:25:11
Se estrena este foro sobre FireMonkey Neftali [Germán.Estévez] FireMonkey 9 09-11-2012 13:05:30
ayuda con este codigo kurono Varios 4 13-06-2008 01:03:29
necesito ayuda con este codigo kurono Varios 4 06-05-2008 07:02:07
procedimiento almacenado ayuda con este codigo pipecato Varios 5 16-12-2005 12:24:34


La franja horaria es GMT +2. Ahora son las 01:22:55.


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