Función FileExists
FileExists nos indicar si un fichero existe o no. Pero OJO, busca en el mismo directorio que el ejecutable del programa.
He creado un formulario en Lazarus. Le he agregado un botón, y este es el código que se ejecuta cuando hacemos clic en él:
procedure TfrmPrincipal.btnIniciarClick(Sender: TObject); type Tprogramas = Array[0..2] of string; var prog : Tprogramas; s : string; fichero : Text; begin prog[0]:='toad.exe'; prog[1]:='gpg.exe'; prog[2]:='r.exe'; system.Assign(fichero,'programas.txt'); Rewrite(fichero); for s in prog do begin if FileExists(s) then begin Writeln(fichero, s); end end; system.Close(fichero); end;
¿Por qué he puesto system.Assign en lugar de invocar Assign a secas?Assign asigna un nombre a un fichero.
Si ponemos Assign(fichero,'programa.txt') nos saldrá el siguiente error de compilación:
ERROR: Wrong number of parameters specified for call to "Assign".
El problema es que el compilador interpreta que queremos utilizar el método Assign de la clase del formulario (TfrmPrincipal en mi caso). Se soluciona indicando que llamamos al método Assign de la clase System: System.Assign.
Lo mismo ocurre con System.Close.
Saludos.
1 comentario:
Gracias, voy a probarlo.
Publicar un comentario