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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2011
crashon182 crashon182 is offline
Miembro
 
Registrado: 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!
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 03:40:08.


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