Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > OOP
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 25/11/2011
jonydread jonydread is offline
Miembro
NULL
 
Join Date: Nov 2011
Posts: 157
Poder: 15
jonydread Va por buen camino
Enviar Varios archivos susesivamente a ap. externa?

Hola amigos,
Tengo un problemilla que no he podido resolver, uso una aplicación externa la cual recibe de a un archivo y he estado tratando de enviarle múltiples archivos pero necesito enviarlos de a uno sucesivamente
uso una función que me paso Ecfisa para darle una entrada y salida del fichero convertido
Código Delphi [-]
Origen := listbox1.Items.Strings[i];
Destino := ChangeFileExt(Origen,'.inf');
 LlamarReg2inf(Handle,'REG2INF.EXE',Origen,Destino );
la única forma que encuentro es manual ir eliminando archivo ya convertido de la lista y darle de nuevo al botón
si alguien sabe de alguna forma agradecería mucho.
muchas gracias
Saludos!
Reply With Quote
  #2  
Old 25/11/2011
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
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.

Pienso que el problema se presenta por que Reg2Inf.exe no devuelve el control a la aplicación que lo invoca. Como te imaginas, me es imposible comprobarlo ya que ni siquiera sé que es lo que hace Reg2Inf.exe. Pero supongo que es una aplicación DOS. Si es así, quizá la prueba que realizé te pueda servir de algo.

Primero create 3 archivos de texto con algún contenido y llamalos ARCHIVO1.TXT, ARCHIVO2.TXT y ARCHIVO3.TXT. (En mi caso los situe en C:\TEMP)

Hacé un archivito de texto con el siguiente contenido:
Code:
@ECHO OFF
CLS
ECHO %1 %2
Guardalo como Reg2Inf.bat (en mi caso C:\'), lo único que hace es mostrar los parámetros enviados.

Luego desde Delphi:
Código Delphi [-]
...
implementation

uses
  ShellApi;

{ Archivos .TXT al Combo }
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i:= 1 to 3 do
    ComboBox1.Items.Add('C:\TEMP\ARCHIVO'+IntToStr(i)+'.TXT');
end;

{ funcion que llama a Reg2Inf }
procedure LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string;
  const Destino: string);
begin
  ShellExecute(Hnd,
              'OPEN',
              PChar(App),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_SHOW); // quité SW_HIDE para visualizar el efecto
end;

{ cambia la extension .TXT por .INF (o la que gustes) }
function CambiarExt(Nom: string): string;
begin
  SetLength(Nom, Length(Nom)-Length(ExtractFileExt(Nom)));
  Result:= Nom+'.INF';
end;

{ Ejecuta y queda command prompt }
procedure TForm1.btnExecAndStayClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComboBox1.Items.Count -1 do
   LlamarReg2Inf(Handle,'CMD', '/K C:\Reg2Inf.BAT '+ComboBox1.Items[i],
     CambiarExt(ComboBox1.Items[i]));
end;

{ Ejecuta y devuelve el control }
procedure TForm1.btnExecAndExitClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComboBox1.Items.Count -1 do
   LlamarReg2Inf(Handle,'CMD', '/C C:\Reg2Inf.BAT '+ComboBox1.Items[i],
     CambiarExt(ComboBox1.Items[i]));
end;
end.
Como podrás comprobar funciona correctamente: Si enviás como parámetro '/K' muestra los nombres y queda en el command prompt y si envias '/C' hace lo propio y se devuelve el control.

Resumiendo, probá cambiando Reg2Inf.BAT por Reg2inf.EXE a ver que nos dice Reg2Inf.exe ...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Reply With Quote
  #3  
Old 26/11/2011
jonydread jonydread is offline
Miembro
NULL
 
Join Date: Nov 2011
Posts: 157
Poder: 15
jonydread Va por buen camino
Hise la prueba y funciona de lujo ahora a trabajar en mi codigo para añadirlo
una consulta
en esta parte del codigo para insertar mediante opendialog los archivos, se puede?
y 1 al 3 se puede poner algo asi asta el ultimo archivo cargado
Código Delphi [-]
for i:= 1 to 3 do
Código Delphi [-]
for i:= 1 to 3 do
    Listbox1.Items.Add('C:\TEMP\ARCHIVO'+IntToStr(i)+'.reg');

Gracias por la ayuda
Reply With Quote
  #4  
Old 26/11/2011
jonydread jonydread is offline
Miembro
NULL
 
Join Date: Nov 2011
Posts: 157
Poder: 15
jonydread Va por buen camino
Quote:
Originally Posted by jonydread View Post
Hise la prueba y funciona de lujo ahora a trabajar en mi codigo para añadirlo
una consulta
en esta parte del codigo para insertar mediante opendialog los archivos, se puede?
y 1 al 3 se puede poner algo asi asta el ultimo archivo cargado
Código Delphi [-]
for i:= 1 to 3 do
    Listbox1.Items.Add('C:\TEMP\ARCHIVO'+IntToStr(i)+'.reg');

Gracias por la ayuda
que pregunta ya solucione eso
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
Opendialog1.Execute;
for i:= 0 to Opendialog1.Files.Count-1 do
    Listbox1.Items.Add(opendialog1.files[i]);
end;
Reply With Quote
  #5  
Old 26/11/2011
jonydread jonydread is offline
Miembro
NULL
 
Join Date: Nov 2011
Posts: 157
Poder: 15
jonydread Va por buen camino
disculpa tantos post pero he ido avanzando y me surgen dudas que no he podido realizar solo, es si puedo modificar esta funcion para obtener nombre corto conservando el nombre completo porque he probado en otra parte del codigo con getshortname funciona pero el nombre lo tira con esos tildes
Código Delphi [-]
function CambiarExt(Nom: string): string;
begin

  nom:= AnsiReplaceStr(nom,' ','');
  SetLength(Nom, Length(Nom)-Length(ExtractFileExt(Nom)));
  Result:= Nom+'.inf';
end;

antes lo hacia asi
Código Delphi [-]
Path:=GetshortName(ExtractFilePath(Opendialog1.FileName));
Filename := Extractfilename(opendialog1.FileName);
Origen := GetshortName(opendialog1.FileName);
Filename:= AnsiReplaceStr(Filename,' ','');
y colocaba origen, path+filename pero ahora no da resultados...
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Varios archivos en uno elcolo83 Varios 5 03/01/2008 15:02
Aplicación con varios archivos Alexander Varios 8 08/11/2007 15:15
UPLOAD de varios archivos por código HombreSigma .NET 3 04/12/2005 15:23
Borrar varios archivos mrmanuel Varios 5 27/05/2004 02:03
Enviar teclas a aplicacion externa El_Lu Varios 2 24/08/2003 02:59


All times are GMT +2. The time now is 01:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi