Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2007
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 19
elcigarra Va por buen camino
Reemplazar texto en un .dfm

Soy de los dinosaurios que aún desarrollo en D7. La pregunta es la siguiente:

He desarrollado un método para traducir proyectos completos a otro idioma que en resumen hace lo siguiente:

a) Determina los archivos ".pas" y ".dfm" del proyecto
b) Extraigo todas las lineas de texto (previo pasaje del dfm de binario a texto)
b) Lleno una tabla con los Caption, hints, etc, de todos los componentes involucrados... es decir: todo lo que se llena con palabras en el idioma del programador
c) dejando un campo vacío el programador llena cada string de estos con su traducción en otro idioma.

hecho esto tengo una tabla con tres campos y cientos de registros del tipo:

archivo idioma1 idioma2 (este lo lleno a mano)
unit1.pas Cerrar Close
unit1.pas Botón uno Button one
.... etc

Que falta?

Lo que no se hacer es una función que sustituya cada registro de idioma2 por los string que coincidan con idioma1. Puedo imaginarme que con Loadfromfile, sustituir todo y SaveToFile puedo hacerlo con los .pas pero no sé que hacer con los .dfm

Alguien conoce una pieza de código que sustituya texto en un .dfm?
Responder Con Cita
  #2  
Antiguo 15-12-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por elcigarra Ver Mensaje
Soy de los dinosaurios que aún desarrollo en D7.
¿Lo dices por la antigüedad? Yo aún utilizo D3!



En cuanto a tu problema, hay programas que generan archivos .dfm o que importan datos de ellos, aunque la verdad no estoy puesto en el tema. Si mal no recuerdo el entorno Pascal Develop tiene una opción de "Importar formulario Delphi". Lo que no sé es si es de código abierto (para que le puedas echar un vistazo). Si es así igual en la red tienes la solución.
Además la cuestión de los .dfm es que cambian en cada versión de Delphi (por eso yo no puedo abrir proyectos creados con versiones posteriores )


Siento no ser de más ayuda.

Saludos.
Responder Con Cita
  #3  
Antiguo 15-12-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Cita:
Empezado por ixMike Ver Mensaje
¿Lo dices por la antigüedad? Yo aún utilizo D3!



En cuanto a tu problema, hay programas que generan archivos .dfm o que importan datos de ellos, aunque la verdad no estoy puesto en el tema. Si mal no recuerdo el entorno Pascal Develop tiene una opción de "Importar formulario Delphi". Lo que no sé es si es de código abierto (para que le puedas echar un vistazo). Si es así igual en la red tienes la solución.
Además la cuestión de los .dfm es que cambian en cada versión de Delphi (por eso yo no puedo abrir proyectos creados con versiones posteriores )


Siento no ser de más ayuda.

Saludos.
Sólo por curiosidad, por que usas D3? Por temas de licencias? Proyectos viejos que no se pueden actualizar? Es simple curiosidad, ya que el D3 es muuuy viejo! xD El compilador mismo, no tiene nada que ver con los de hoy dia (del D6 al D7 ya hay mucha diferencia en el compilador... xD).

Saludos.
Responder Con Cita
  #4  
Antiguo 15-12-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por xEsk Ver Mensaje
Sólo por curiosidad, por que usas D3?
Pues porque es el que tengo legal, y estoy mudándome (o eso intento) al 100% software libre, no me interesa (económicamente) mudarme a una versión nueva. Y para una afición (sí, para mí la programación es una afición ) creo que me sirve el que tengo.

¿O es que todos juegan con las nuevas videoconsolas? Yo aún tengo por ahí la SNES, aunque hace cosa de un año que no la uso .


Vaya, nos vamos del tema que proponía elcigarra. ¿Alguien puede ayudarle?


Saludos.
Responder Con Cita
  #5  
Antiguo 17-12-2007
rimbener rimbener is offline
Registrado
 
Registrado: abr 2006
Posts: 6
Poder: 0
rimbener Va por buen camino
Re: Re: Reemplazar texto en un .dfm

Hola, fijate que el .dfm es un archivo de texto también por lo tanto podrías realizar el mismo procedimiento que con los .pas, abrilos con el bloc de notas y comprobalo.

Saludos.
Responder Con Cita
  #6  
Antiguo 18-12-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por rimbener Ver Mensaje
Hola, fijate que el .dfm es un archivo de texto también por lo tanto podrías realizar el mismo procedimiento que con los .pas, abrilos con el bloc de notas y comprobalo.

Saludos.

Hola.

Verás, aunque en Delphi puedas editar un archivo .dfm en modo texto, realemente no son archivos de texto (al menos no en mi versión de Delphi). Y si no, pues prueba a abrirlos con el bloc de notas y comprobarlo.


Saludos.
Responder Con Cita
  #7  
Antiguo 18-12-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Bueno, en las primeras versiones de Delphi los .dfm se guardaban en formato binario, pero en las más recientes (no recuerdo si desde D6 o D7), puedes especificar que los .dfm se guarden en formato de texto plano...

Aun así, Delphi trae una utilidad de línea de comandos para convertir los .dfm de un formato a otro. El nombre no lo recuerdo ahora...



Saludos...
Responder Con Cita
  #8  
Antiguo 18-12-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Bueno, en las primeras versiones de Delphi los .dfm se guardaban en formato binario, pero en las más recientes (no recuerdo si desde D6 o D7), puedes especificar que los .dfm se guarden en formato de texto plano...

Aun así, Delphi trae una utilidad de línea de comandos para convertir los .dfm de un formato a otro. El nombre no lo recuerdo ahora...



Saludos...
Nunca te acostarás
sin saber algo más

(o algo así, no lo recuerdo bien).


Saludos.
Responder Con Cita
  #9  
Antiguo 19-12-2007
zurdosoft zurdosoft is offline
Miembro
 
Registrado: may 2005
Ubicación: Villa Maria, Cordoba, Argentina
Posts: 16
Poder: 0
zurdosoft Va por buen camino
Modificar recursos

Creo que lo que necesitas, elcigarra, es traducir un programa que puede ser hecho con el programa ya compilado y listo.
Para esto tienes que modificar los recursos.
Consulta la respuesta de seoane en este Tema: http://www.clubdelphi.com:80/foros/s...ad.php?t=38718
En Ejemplo35.zip encontraras una aplicacion que permite modificar un exe desde otro.
Asi cambiando los recursos tendras el programa en otro lenguaje.
Es una idea, espero que te sirva.
Felices Fiestas
Responder Con Cita
  #10  
Antiguo 19-12-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cool

¡Hola!

Coincido en que una buena opción es manejar cadenas "ResourceString".

Cita:
Empezado por elcigarra Ver Mensaje
...Soy de los dinosaurios que aún desarrollo en D7...
¿O sea que la mayoría de los desarrolladores Delphi, al día de hoy, somos unos dinosaurios?

Tranquilo, Delphi 2007 promete mucho, y probablemente terminará desplazando a Delphi 7 (a la cual extrañaremos por haber sido una versión grande entre las grandes) por estar más completo, pero la cosa lleva su tiempo. Tal vez en el 2009 sea cuando alcance la nueva mayoría. Hay que ser realistas, pero caro, sin dejar de avanzar. Yo en unas semanas comenzaré con Delphi 2007, si el bolsillo me lo permite (o las promesas se cumplen ).

Un dino-abrazo.

Al González.
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
Reemplazar texto de encabezamiento y pie toni.vi Servers 2 16-10-2007 11:36:50
Reemplazar texto en fichero HTML Sr_Sombrero Varios 1 17-04-2007 20:01:50
Pregunta Inno Setup: ¿Cómo puedo reemplazar la barrita del wizard por texto? Black_Ocean Varios 2 25-01-2007 09:41:10
Reemplazar Archivos en Uso eduarcol Noticias 2 15-06-2004 12:58:06
Buscar y reemplazar sur-se Servers 2 16-04-2004 19:36:16


La franja horaria es GMT +2. Ahora son las 20:07:25.


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