Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 28/01/2011
crashon182 crashon182 is offline
Miembro
 
Join Date: May 2008
Posts: 12
Poder: 0
crashon182 Va por buen camino
Duda con opendialog

Hola gente, les hago alguna consulta para ver si alguien me puede ayudar... resulta que me encuentro realizando un IDE para el lenguaje de programacion BENNUGD encontré que cuando quiero abrir un archivo que se encuentra en una dirección muy larga o el nombre de la carpeta cuenta con espacios, lo abre pero no lo compila ni ejecuta. Luego si el mismo programa lo coloco en una ruta corta donde las carpetas no contienen espacios ahi compila bien. les pongo el código del proceso que abre el archivo en lazarus (delphi).

Tengo una unit que se encarga del manejo de archivos, en esta tengo el siguiente código.

Código Delphi [-]
implementation
procedure Tarchivo.abrirArchivo(miArchivoF:ansistring;var editor:TsynEdit);
var texto:string;
 
begin
AssignFile(miArchivo,miArchivoF);
Reset(miArchivo);
while not eof(miArchivo) do
      begin
      readln(miArchivo,texto);
      editor.lines.add(texto);
end;
      CloseFile(miArchivo);
end;

Luego en el programa principal en el botón para abrir un programa tengo el siguiente código:

Código Delphi [-]
procedure TForm1.BotonAbrirClick(Sender: TObject);
var archivoA:Tarchivo;
 
begin
     dialogoabrir.Execute;
  if (dialogoabrir.Execute) then
   begin
     editor.Text:='';
     nombreArchivo :=  dialogoabrir.FileName;
     archivoA:=Tarchivo.Create;
     archivoA.abrirArchivo(nombreArchivo,editor);
   end;                                 
 archivoA.Free;    
end;

la variable nombreArchivo es de tipo AnsiString y la declare como pública.
ahora les pongo el código del botón para compilar y ejecutar

Código Delphi [-]
procedure TForm1.CompilarEjecutarClick(Sender: TObject);
var cadenaSinExtension:ansistring;
cantidadCar:integer;
begin
   {$H+}
  cantidadCar:=length(nombreArchivo);
  cadenaSinExtension := Copy( nombreArchivo, 1, cantidadCar-4 );
  Aprocess:=Tprocess.Create(nil);
  Aprocess1:=Tprocess.Create(nil);
  {$IFDEF WIN32}
  Aprocess.CommandLine:='CMD /K  bgdc.exe '+nombreArchivo;
  Aprocess1.CommandLine:='bgdi.exe '+cadenaSinExtension;
 
  {$ENDIF}
  {$IFDEF LINUX}
  Aprocess.CommandLine:='bgdc '+nombreArchivo;
  Aprocess.CommandLine:='bgdi '+cadenaSinExtension;
  {$ENDIF}
  //Aprocess.Options:=[poWaitOnExit];
  //Aprocess1.Options:=[poNewConsole];
  Aprocess.Execute;
  Aprocess.Free;
  Aprocess1.Execute;
  Aprocess1.Free;
 
end;

Bueno, muchas gracias!!!

saludos!
Reply With Quote
  #2  
Old 28/01/2011
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Has probado a ponerlo entre comillas?, algo así como:
Code:
QuotedStr(miArchivoF)
Reply With Quote
  #3  
Old 28/01/2011
crashon182 crashon182 is offline
Miembro
 
Join Date: May 2008
Posts: 12
Poder: 0
crashon182 Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
¿Has probado a ponerlo entre comillas?, algo así como:
Code:
QuotedStr(miArchivoF)
Hola, antes que nada muchas gracias por responder, probé de esa forma .. y el compilador de BEnnugd me dice que no encuentra la ruta especificada.

el error que me tira el compilador de bennugd cuando trato de ejecutar un archivo que lo abrí de una dirección demasiado larga es "demasiados archivos especificados"

Last edited by crashon182 : 28/01/2011 at 04:08.
Reply With Quote
  #4  
Old 28/01/2011
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by crashon182 View Post
Hola, antes que nada muchas gracias por responder, probé de esa forma .. y el compilador de BEnnugd me dice que no encuentra la ruta especificada.

el error que me tira el compilador de bennugd cuando trato de ejecutar un archivo que lo abrí de una dirección demasiado larga es "demasiados archivos especificados"

Bueno, no he oido jamás nada sobre bennugd, pero el mensaje que dices: "demasiados archivos especificados", me hace pensar que el problema es ese, que debe esar entre comillas para que lo tome como 1 fichero, ya que de la otra forma ve varios, ejemplo: archivos de programa\datos mios\datos.dat
1. archivos
2. de
3. programa\datos
4. mios\datos.dat

Por eso debe ponerse entre comillas, para que vea:
1. "archivos de programa\datos mios\datos.dat"

En lugar de quotedstr, prueba con #39+'archivos de programa\datos mios\datos.dat'#39
Haz algunas pruebas de ese tipo hasta encontrar el modo adecuado
Reply With Quote
  #5  
Old 28/01/2011
crashon182 crashon182 is offline
Miembro
 
Join Date: May 2008
Posts: 12
Poder: 0
crashon182 Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Bueno, no he oido jamás nada sobre bennugd, pero el mensaje que dices: "demasiados archivos especificados", me hace pensar que el problema es ese, que debe esar entre comillas para que lo tome como 1 fichero, ya que de la otra forma ve varios, ejemplo: archivos de programa\datos mios\datos.dat
1. archivos
2. de
3. programa\datos
4. mios\datos.dat

Por eso debe ponerse entre comillas, para que vea:
1. "archivos de programa\datos mios\datos.dat"

En lugar de quotedstr, prueba con #39+'archivos de programa\datos mios\datos.dat'#39
Haz algunas pruebas de ese tipo hasta encontrar el modo adecuado
hola muchas gracias... me funciono de la siguiente manera:
Código Delphi [-]
Aprocess.CommandLine:='CMD /K  bgdc.exe '+'"'+nombreArchivo+'"';
  Aprocess1.CommandLine:='bgdi.exe '+'"'+cadenaSinExtension+'"';
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
opendialog vacio? Yun-i Varios 4 30/10/2008 20:16
problema con opendialog lina maria Varios 5 15/04/2008 01:04
Duda sobre SaveDialog/OpenDialog pepecharlie67 Varios 6 27/12/2005 20:11
Problema con OpenDialog Xianto Varios 1 09/02/2005 14:56
OpenDialog GIVO Varios 1 29/09/2003 23:20


All times are GMT +2. The time now is 23:08.


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