Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Cool ó Código BAT o con Delphi

Me preguntaba como relacionar con Delphi para que funcione un archivo BAT o en su defecto LO HAGA DESDE Delphi, mi problema. Necesito crear un archivo que me realice la tarea del brcc32 que crea archivos de recursos. Inicialmente estaba intentando con un CONVERSOR.BAT, que contiene estas líneas:

PATH C:\Archivos de programa\Borland\Delphi7\Bin
brcc32 PRUEBA.rc PRUEBA.res

El código BAT sencillo de arriba me funcionaba bien para uno, pues detectaba donde se encontraba el ejecutable brcc32 para transformar un archivo de recursos de ".rc" a ".res", este BAT trabajaba muy bien en el directorio que me encontraba con un doble click.

El problema era, que CUANDO CREABA OTRO fichero .rc, y otro, y otro, etc, cada vez tengo que estar editando mi CONVERSOR.BAT para cambiar los nombres del archivo en esa segunda línea (Ej.: brcc32 OtraPrueba.rc OtraPrueba.res)

Entonces lo que requería es que mi Archivo BAT haga lo siguiente al doble click:

1.- Detecte los archivos *.rc que existan en el directorio actual que me encuentre.
2.- Que los Cuente, ¿Cuantos encontró? (O en su defecto EJECUTE el brcc32 con los encontrados)
3.- Hacer un FOR hasta la cantidad que Contó.
4.- Dentro del FOR Hacer funcionar: brcc32 para todos los archivos encontrados *.rc a *.res en el actual directorio y reemplazar si existe alguno con el mismo nombre.

Me he planteado todo esto para evitarme IR CADA VEZ al directorio de BIN y hacer funcionar el brcc32, por un lado, por otro para evitarme hacer funcionar el brcc32 tecleando desde la ventana de MSDOS PARA CADA ARCHIVO "rc", lo ideal sería hacer un dobleclick en una Aplicación y que haga este trabajo para todos los "rc" que se encuentren en el ACTUAL DIRECTORIO.

Con un BAT no lo he logrado, además que no me conozco de muchos de sus comandos. ¿Como relaciono todo este proceso con Delphi?

Saludos

Última edición por Deiv fecha: 10-06-2006 a las 15:52:37.
Responder Con Cita
  #2  
Antiguo 08-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Dentro del archivo bat puedes escribir:

Código:
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin

del *.res /y 
FOR  %%FileRc IN  (*.rc)  DO  brcc32 %%FileRec %%FileRec.res
Creo que "del /y" era para no pedir confirmación, pero no estoy seguro.
El archivo final quedará como Prueba.rc.res si no me equivoco, porque la variable FileRec se sustituye por cada nombre de archivo. Espero que sea viable.

Aqui tienes un tutorial de archivos .bat: http://goforit.unk.edu/msdos/msdos19.htm

Hacer el equivalente en Delphi, será más largo, a menos que tengas rutinas de apoyo como FindFilesInDir('c:\', '*.res') de las NKLIBS

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 08-06-2006
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Una MUCHO mejor opcion es usar WANT

http://sourceforge.net/projects/want/

Es un programa derivado de ANT, y permite hacer bats mucho mas poderos..
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 10-06-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Gracias

Gracias por las sugerencias. Acabo de darme cuenta que no tenía activado la opción: de respuesta instantánea por correo, recien que leo los post los probaré ambos y les comento.
Saludos
Responder Con Cita
  #5  
Antiguo 11-06-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Hice algunas correcciones en la 2da y 3ra linea (/y por /p y FileRec x FileRc):

Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin
del *.res /p
FOR %%FileRec IN (*.rc) DO (brcc32 %%FileRec %%FileRec.res)

- Pero a pesar de ello Me dá error con el siguiente mensaje:
..."No se esperaba %FileRec en este momento" y no hace ningún trabajo ¿Donde está el error?
- Otra consulta ¿por que en la 2da línea (del *.res /p) se le ordena borrar antes? ¿acaso esta linea no debía ser la 3ra? ¿Cual el objetivo?
- No entiendo como se maneja el Programa WANT, descargué pero algún Help? Tutorial? para Want.

Saludos
Responder Con Cita
  #6  
Antiguo 11-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pues el problema es que la variable solo puede tener una letra, es decir %%e (una sola letra despues de los %%):
Código:
@echo off
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin
del *.res /p
echo empezando la compilacion
for %%e in (*.rc) do brcc32 %%e
echo.
echo finalizado
Acabo de probarlo y funciona.

Decías que sobreescribiese cualquier *.res que hubiera, pues... se borran antes y así no tienes que sobreescribirlos

El archivo de salida no hay por qué especificarlo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 11-06-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Justamente!, revisando el tutorial en http://goforit.unk.edu/msdos/msdos19.htm noté que la variable debía llevar una letra, gracias Lepe. Yo lo hice así:
Código:
Set path = %path%;C:\Archivos de programa\Borland\Delphi7\Bin
FOR  %%f IN  (*.rc)  DO  (brcc32 %%f %%f.res)
- Sigo sin entender ¿para que la línea: del *.res /p? (pero en fin no hace falta)
- ¿Alguien sabe como se utiliza el WANT?, estoy con la curiosidad.
Responder Con Cita
  #8  
Antiguo 11-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
- Sigo sin entender ¿para que la línea: del *.res /p? (pero en fin no hace falta)
Borra todos los archivos cuya extensión es ".res"

del = Delete
* = Comodín (cualquier nombre de archivo)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 12-06-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Upsss, perdón no leí bien la primera vez.
Cita:
Empezado por Lepe
Decías que sobreescribiese cualquier *.res que hubiera, pues... se borran antes y así no tienes que sobreescribirlos
mamcx, como se maneja WANT?
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
ANN: AnyNET-Delphi: Herramienta para generar codigo fuente Delphi desde :NET mamcx Noticias 7 21-05-2007 02:12:36
Delphi + Access + con codigo albertoP Conexión con bases de datos 25 17-05-2006 14:40:59
Portar codigo de Delphi a C++ eliash Varios 4 19-12-2005 15:45:29
de codigo VB a codigo Delphi ingel Impresión 2 20-07-2004 14:15:44
codigo sql en delphi azaagh SQL 4 11-06-2004 18:15:55


La franja horaria es GMT +2. Ahora son las 11:24:09.


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