Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
ejecutar ap.ext. dir. y nombre in & outfile

algo enredado el titulo pero trate de ser algo especifico y no lo pude editar despues,
lo que pasa ejecuto programa externo que convierte archivo segun estos parametros en un bat
Código:
set WORKFILE=%~1
set OUTFILE=%~dpn1.inf
CD /D %~dp1

:doit
Echo.
Echo ** Converting "%~nx1" ...
reg2inf.exe "%WORKFILE%" "%OUTFILE%"
Echo.
PAUSE
goto end
queria saber si se puede hacer lo mismo en codigo delphi
algo asi como un shellexecute que tome el archivo de entrada %WORKFILE% y salga con %OUTFILE%
tengo solo una parte mas o menos clara
%WORKFILE% podria ponerlo como Opendialog1.FileName o ParamStr(1)
pero
%OUTFILE% ??? debe tener otra extension (en bat set OUTFILE=%~dpn1.inf) y quedar en el mismo directorio de workfile en (bat CD /D %~dp1)
demas no se bien como realizar esta parte, mas bien estoy bien nulo
reg2inf.exe "%WORKFILE%" "%OUTFILE%"

saludos!
Gracias!

Última edición por jonydread fecha: 14-11-2011 a las 02:17:48. Razón: titulo enredado
Responder Con Cita
  #2  
Antiguo 14-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Hola.

No entiendo la necesidad de enviar los parámetros al archivo por lotes, yo lo haría directamente a reg2inf. Por ejemplo:
Código Delphi [-]
procedure LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string; const Destino: string);
begin
  ShellExecute(Hnd,
              'OPEN',
              PChar(ExtractFileName(App)),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_HIDE);
end;

Llamada:
Código Delphi [-]
 LlamarReg2inf(Handle,'C:\REG2INF.EXE','C:\TEMP\OLDNAME.XX','C:\TEMP\NEWNAME.XXX');

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
lo que pasa es que reg2inf.exe es un programa externo, es un archivo comprimido funciona con pantalla msdos y no puedo editarlo, para ello existe otro bat que envia los parametros que coloque, lo que quiero es saltar el primero y hacerlo en delphi y enviar directo a reg2inf.exe
Responder Con Cita
  #4  
Antiguo 14-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
funciona bien pero como puedo reemplazar esto
,'C:\TEMP\NEWNAME.XXX' mantener nombre de archivo y crear en el mismo directorio de entrada
edit:
ay quedo
Código Delphi [-]
procedure Tform1.LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string; const Destino: string);
var sAppName, sAppinf : string;
begin
sAppName := App;
sAppinf := ChangeFileExt(sAppName,'.inf');
  ShellExecute(Hnd,
              'OPEN',
              PChar(ExtractFileName(App)),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_HIDE);
end;

muchas gracias!!

Última edición por jonydread fecha: 14-11-2011 a las 16:11:09.
Responder Con Cita
  #5  
Antiguo 14-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
disculpa el de arriba estaba mal no funciona
Responder Con Cita
  #6  
Antiguo 14-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Hola jonydread.

Podés enviar constantes como en el ejemplo que te puse anteriormente o variables. Lo que importa es que en el argumento Origen envíes la Ruta+Nombre de archivo sobre el que se van a hacer las operaciones (WORKFILE) y en el argumento Destino el nombre que deseas darle a la salida (OUTFILE).

Un ejemplo con variables:
Código Delphi [-]
var
  Aplicacion ,Entrada, Salida:
begin
  Aplicacion:= 'Y:\UNA_RUTA\REG2INF.EXE';  // Aplicacion: reg2inf.exe
  Entrada   := 'X:\OTRA_RUTA\ENTRADA.@@@'; // Nombre de archivo de entrada
  Salida    := 'X:\OTRA_RUTA\SALIDA.UXO';  // Nombre de archivo de salida
  LlamarReg2Inf(Handle,  Aplicacion, Entrada, Salida);
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 14-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
Mil gracias tenia la solucion ay mismo y no me habia dado cuenta
Código Delphi [-]
procedure Tform1.LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string; const Destino: string);
begin
  ShellExecute(Hnd,
              'OPEN',
              PChar(ExtractFileName(App)),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_HIDE);
end;
llamar LlamarReg2inf
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var sAppName, sAppnew : string;
begin
sAppName := Opendialog1.FileName;
sAppnew := ChangeFileExt(sAppName,'.inf');
 LlamarReg2inf(Handle,'REG2INF.EXE',Opendialog1.FileName,sAppnew );
end;
Responder Con Cita
  #8  
Antiguo 16-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
ok muchas gracias!
Responder Con Cita
  #9  
Antiguo 16-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Hola.

Estaba pensando, que si los archivos son elegidos mediante un TOpenDialog, existen pocas posibilidades de que el archivo no exista...

Es decir o cancela la elección o la acepta, pero si hace esto último, si o sí el nombre de archivo se encontrará en la propiedad FileName del TOpenDialog. Y a menos que el archivo se halle en una unidad removible y sea quitada antes de llamar a ShellExecute no veo la posibilidad de que el archivo desaparezca.

De todas formas podés utilizar la función FileExists antes de llamar a ShellExecute para verificar la existencia el archivo enviado en el argumento Origen.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-11-2011 a las 19:26:09.
Responder Con Cita
  #10  
Antiguo 16-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
lo ise asi
Código Delphi [-]
    if FileExists(Opendialog1.FileName) then
              label1.Caption:='Convertido con exito!! : '+outfile
              else
   label1.Caption:='Error! No se Encuentra Archivo'
       end;

gracias!!
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
Ejecutar procedimientos por su nombre y con parametros makina OOP 3 29-09-2016 18:06:55
Ejecutar procedimiento sabiendo únicamente su nombre DarkDudae OOP 4 26-03-2011 13:19:26
Ejecutar Rave Designer sin ejecutar IDE Delphi rmendoza83 Impresión 0 09-01-2009 19:44:56
Ejecutar función de JavaScript a partir del nombre de su identificador (string) dec HTML, Javascript y otros 12 24-08-2006 01:30:45
Mostrar nombre de campos y filtar nombre de tablas .db en un combobox Coco_jac Varios 1 24-06-2006 01:34:29


La franja horaria es GMT +2. Ahora son las 20:27:38.


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