Ayuda a pasar este código a firemonkey.
hola,
anteriormente el señor ecfisa. me ayudo a crear un editor hexadecimal, funciona bien en VCL. pero necesito tenerlo en firemonkey.
sera posible pasar este código a firemonkey, sin usar un Control StringGrid. es decir que se almacene en una variable, y no en StringGrid. pero sino, lo mas importante para mi es pasar este código a firemonkey. yo hago el resto. muchas gracias por su ayuda. |
elmago00,
Cita:
1- ¿Por que no un control TStringGrid? :confused: 2- ¿Que control sugieres usar en lugar del control TStringGrid?. 3- ¿Cuando te refieres a una variable exactamente que quieres decir y por que? :confused: 4- ¿Que versión de Delphi utilizas?. Espero sea útil :) Nelson. |
gracias por responder Nelson.
veras es que lo intento hacer es abrir el archivo, y editarlo automáticamente, buscando la dirección y la cantidad de caracteres que le siguen. luego reemplazarlos por los que yo pongo. por eso decía si podía hacer lo mismo pero almacenarlo en una variable TStringGrid, sin usar el componente. pero si no es posible. el interés mayor mio es pasarlo a firemonkey para hacer yo el resto, que es buscar la dirección mas el hexadecimal y reemplazarlo. uso XE3. parece algo complejo verdad? pero se resume en pasarlo a firemonkey, ya sea un componente TStringGrid o una variable. cualquiera esta bien. siempre que me permita realizar la búsqueda para hacer lo que necesito. |
elmago00,
Cita:
1- ¿Cuando indicas buscar por dirección te refieres al Offset (Fila) y los Bytes (Columna) que se muestran en el TStringGrid del ejemplo?. 2- ¿Cuando te refieres a almacenarlo en una variable TStringGrid pero sin el componente, te refieres a poder usarlo por código pero sin la parte visual del mismo?. Espero sea útil :) Nelson. |
exacto usarlo pero sin que el usuario visualice el componente.
la búsqueda la realizo por "Offset" y reemplazo una determinada cantidad de byte(el hexadecimal) no los modifico todos solo unos cuantos, y luego guardo el archivo. |
elmago00,
Cita:
Pregunto: ¿Cual es la finalidad de este trabajo? :confused: Nelson. |
solo poder abrir un archivo en hexadecimal, y editarlo automáticamente, para un programa que estamos desarrollando.
no es con fines comerciales, ni nada eso. |
Cita:
|
elmago00,
Cita:
1- ¿Por que este tipo de procesamiento?, ¿Sabes que pontencialmente estas construyendo un virus? :confused: 2- ¿Cuales son los detalles de la aplicación que quieres realizar?. 3- ¿Por que FireMonkey y no VCL?, ¿Es una aplicación multiplataforma?. Espero sea útil :) Nelson. |
lo siento no comprendí bien tu pregunta.
lo necesito en firemonkey, por que el software principal esta así. y no podemos mover a VCL. por que el código fuente es mas 40 mil lineas de código. no tiene nada que ver con virus. conoces los editores hexadecimales. bien pues eso es lo que necesito, por que el software debe editar un archivo, buscar la dirección que debe cambiar para poder cargar ese archivo. solo necesito ese código en firemonkey. si es un componente stringGrid o no es lo de menos. solo que no querremos que el usuario haga el cambio, por que el no sabrá que esta insertando como reemplazo a la linea hexadecimal. solo eso. hagamos una cosa. se que no crees lo que digo. solo detallen las propiedades que tiene este código pero en firemonkey. por que el StringGrid no funciona igual que en VCL. yo hago el resto. gracias por responder a mis consultas. |
elmago00,
Cita:
El código anterior en Delphi XE4 bajo Windows 7 Professional x32, es la implementación del código del Msg #1 en FireMonkey HD, como se muestra en la siguiente imagen: Espero sea útil :) Nelson. |
gracias Nelson por ayudarme. ya es de madrugada y ustedes me siguen ayudando. mil gracias.
tu código solo tiene un contraste, yo como te dije antes, uso XE3. y me da dos errores el primero dice: TTextCell no contiene ningún miembro con el nombre StyledSettings. es esta linea
veo que tu usas algunas clases que XE3 no están disponibles, como ser: FMX.StdCtrls; el segundo problema es que abre el archivo pero en blanco, el StringGrid no muestra nada. perdona tanta molestia, pero cuando el cerebro no da, no queda de otra, que pedir ayuda. |
intente no usar la opcion
Pero ahora me permite cerrar la venta. : ) |
elmago00,
Cita:
1- ¿De que tamaño es el archivo en cuestión?. 2- ¿Puedes abrir otros archivos?. 3- ¿La eliminación de la opción mencionada es la única modificación al código propuesto en el Msg #11?. Espero sea útil :) Nelson. |
elmago00,
Cita:
Revisa este código: El código anterior en Delphi XE4 bajo Windows 7 Professional x32, es la versión 2 del código propuesto en el Msg #11, con unas pequeños cambios en el manejo del Visualizador de Archivos en Hexadecimal en FireMonkey, como se muestra en la siguiente imagen: El código esta disponible en : Visualizador de Archivos en Hexadecimal en FireMonkey Espero sea útil :) Nelson. |
muchas gracias al fin lo conseguí, se demora un poco, pero no importa. muchas gracias Nelson^\||/^\||/:)
para que fuera compatible con XE3 lo hice asi.
gracias a Ecfisa y Nelson.^\||/ |
Cita:
En el hilo anterior había interpretado que querias realizar cambios, de allí que usé un componente que te permitiera hacerlos interactivamente, pero si deseas guardarlo en un archivo de texto para trabajar sobre él, también podrías hacer:
Uso: El código te genera el archivo en la misma carpeta del archivo orígen, con el mismo nombre, de extensión .HEX y contiene los mismos datos que veías en el StringGrid. Saludos :) |
elmago00,
Cita:
Una pequeña corrección :rolleyes: : 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. |
muchas gracias, agradezco mucho que hayan compartido su experiencia en este lenguaje conmigo. muchas gracias^\||/^\||/:D
|
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?. |
Cita:
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: De este modo, si se estropea el ejecutable, basta con borrarlo y luego renombrar el archivo .BAK como .EXE. Saludos :) |
elmago00,
Cita:
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? :confused: 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? :confused: Espero sea útil :) Nelson. |
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 |
amigos alguna idea de como hacer todo esto? el tiempo se me agota jeje
|
Cita:
|
Cita:
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 |
Cita:
Sigo sin entender desde donde queres restaurar el archivo original, pero ya te sugerí una idea. Te ejemplifico el uso:
Saludos :) |
quiero editar el archivo en hexadecimal y guardarlo todo. guardar todo el archivo hexadecimal pero ya modificado y en su extensión original.
para que funciono como antes con la modificacion hecha. |
Hola elmago00.
Cita:
Pero es claro que, el que funcione o no, dependerá de los cambios que realizes. Basta una sóla modificación indebida sobre una dirección de memoria, puntero, segmento, offset, etc, como para hacer que la aplicación se cuelgue o peor aún... haga alguna cosa no deseada. Saludos :) |
elmago00,
Cita:
1- No has respondido en detalle las preguntas 2, 3 y 4 formuladas en el Msg #22. 2- No especificas ningún detalle de la funcionalidad del archivo inChipset.bin del Msg #23, ¿Que es ese archivo?, ¿Cual es su origen?, ¿Cual es su uso?, ¿Que es lo que quieres modificar y por que?. Suerte en tu proyecto :cool: Nelson. |
el objetivo es modificar la función de este IC, por que funciona bien, y para eso debemos hacer lo antes descrito.
esto solo de puede hacer en ensamblador y hexadecimal. nosotros lo hacemos en hexadecimal. y para colmo a la hora de modificar el archivo hexadecimal, no puedo eliminar la cadena anterior por que es diferente en todos los archivos, lo unico que se me ocurre es eliminar un conteo de los siguientes caracteres, pero hasta ahora no veo como. después de hacer esto debo restaurarlo a su extensión original ahora si conteste a sus preguntas? se que es complicado, tienen alguna idea. |
Cita:
intente realizar un conteo de caracteres siguientes para eliminarlo pero nada funciona. y menos el recuperar el archivo despues de editarlo. |
Hola elmago00.
Cita:
Este código permite abrir, modificar, buscar texto obre la columna ASCII y guardar el archivo modificado con el mismo nombre u otro. Lamento no haberlo escrito para FireMonkey pero solo cuento con Delphi 7. Con seguridad lo podrás adaptar del modo como comentaste en el mensaje #19. En todas las pruebas que realizé, modificando constantes de texto, el ejecutable resultante funcionó de modo correcto mostrando los valores modificados. Descarga desde FTP Club Delphi: EditorHexadecimalBásico Saludos :) |
elmago00,
Cita:
Cita:
Te comento: No puedes salvar la representación Hexadecimal del archivo cargado en el TStringGrid y que este tenga los atributos y comportamiento del original, debes salvar el archivo y sus modificaciones en Binario. Revisa este código: El código anterior en Delphi XE4 bajo Windows 7 Professional x32, es la versión 3 del código propuesto en el Msg #15 con las correcciones incluidas del Msg #18, el cual te permitirá: Cargar, Representar y Editar archivos visualmente en Hexadecimal y salvarlos posteriormente en su representación Hexadecimal (Modo Texto) o Binaria, como se muestra en la siguiente imagen: El código esta disponible en : Visualizador de Archivos en Hexadecimal en FireMonkey v3 Suerte en tu proyecto :cool: Nelson. |
elmago00,
Continuación del Msg #34 Una pequeña corrección :rolleyes: :
El código anterior en Delphi XE4 bajo Windows 7 Professional x32, corrige el código del Msg #34 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: Suerte en tu proyecto :cool: Nelson. |
llevo horas tratando, pero creo que mejor haré los cambios, y lo guardare en SaveToStream.
para que guarde los cambios en el archivo original. después de editarlo en memoria. seguiré tratando y luego les cuento como fue. |
elmago00,
Cita:
Nelson. |
Hola elmago00.
¿ Es imprescindible que uses FireMonkey ? Por que el código del mensaje #33 esta probado, hace lo que buscas y funciona correctamente. También pude apreciar que no son tan radicales las modificaciones echas al código que parten de este enlce Codigo Hexadecimal para adecuarlas a FireMonkey. Por otro lado, si deseas usa un editor hexadecimal mas poderoso, te vuelvo a sugerir lo que te mencioné en el otro hilo: HxD es totalmente gratuito. Saludos :) |
Cita:
Porsupuesto Nelson y dejame decirte que funciona perfecto. pero bajo un control TSringGrid. y estoy usando el código de efisa del msg#17 este código me permite almacenarlo en variable y editarlo desde un archivo y sin usar el Control visible. lo que hago en estos momentos es pasar tu código para que al igual al de ecfisa editarlo en un archivo guardado. y luego pasarlo a binario, tal y como lo tienes tu que funciona, pero que no eso ese método por que se demora, 15 minutos en cargar un archivo de 9mb.
este es tu código que trato de usar sin el control. dirás por que este se complica tanto. por la idea es modificar el archivo sin visualizarlo. así la corrección en el IC se hace mas rápido, y el procesador (que no es muy poderoso) lo ejecuta rápido. |
Cita:
los procesos son muy grandes, el mínimo tiene 1200 lineas. una unit tiene 11.453 lineas. las otras son de 2000. todo esto es bajo firemonkey, pasarlo a vcl es imposible en tan poco tiempo. y la idea es que todo este en el mismo programa, pues el gerente informático de la otra empresa así lo solicito.(no se por que) aun con VCL, tu me has ayudado enormemente y que decir de Nelson, tiene un cerebro para firemonkey, que me pregunto ¿son humanos?:):) |
La franja horaria es GMT +2. Ahora son las 07:43:42. |
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