Ver Mensaje Individual
  #6  
Antiguo 10-10-2014
Avatar de ZayDun
ZayDun ZayDun is offline
Miembro
 
Registrado: mar 2007
Posts: 129
Reputación: 18
ZayDun Va por buen camino
Cita:
Empezado por nlsgarcia Ver Mensaje
ZayDun,




Te comento:

1- El código del Msg #43 del link sugerido, tiene dos funciones para el cambio de archivos a nivel Binario : ChangeFileHex y ChangeFileOffset las cuales, permiten cambiar una cadena hexadecimal en un archivo.

2- Función ChangeFileHex: Cambia n ocurrencias de una cadena hexadecimal por una nueva cadena hexadecimal en un archivo dado y salva los cambios en un nuevo archivo del mismo nombre del original con extensión .new, en el mismo directorio del archivo de entrada.

3- Función ChangeFileOffset: Sustituye en un Offset (Dirección en Decimal) de un archivo dado una cadena hexadecimal y salva los cambios en un nuevo archivo del mismo nombre del original con extensión .new, en el mismo directorio del archivo de entrada.

Los Bytes Per Row (BPF) de ambas funciones están en función de la longitud de la cadenas de entrada OldHex (Función ChangeFileHex) y NewHex (Función ChangeFileOffset), siendo importante recordar que ambas cadenas deben ser del mismo tamaño en las funciones mencionadas.

Nota: Las dos funciones anteriores leen y modifican los archivos de entrada y salida directamente en disco, lo cual les permite procesar archivos de cualquier tamaño, limitados solo por las características del Sistema de Archivos del Sistema Operativo de forma rápida y eficiente e independientemente de cualquier componente de Delphi, funcionado correctamente según lo esperado en las pruebas realizadas.

Pregunto:

1- ¿Cual función utilizastes ChangeFileHex o ChangeFileOffset?.

2- ¿Has utilizado el programa HxD - Hexeditor para ubicar el offset de la cadena a modificar?.

Revisa con detalle todo lo anterior, si aun no te funciona, publica un link para descargar el archivo con el detalle de lo que quieres modificar y vere que puedo hacer


Espero sea útil


Nelson.
El problema como casi siempre.. era mio, parece que se ha solucionado el problema dandole permisos de administrador, como te decía el código copilaba perfectamente pero no realizaba el cambio.

Tengo una última duda si fueses tan amable de contestarme, estoy utilizando la función ChangeFileHex y a veces el nombre de la cadena es mas largo que el de la original, hay alguna posibilidad de permitir que cambie independientemente del tamaño de la cadena? cuando realizo el cambio manualmente en el archivo no hay ningún problema con el archivo, es decir que no se vuelve corrupto. Gracias de nuevo por tu tiempo.
Responder Con Cita