![]() |
Grabar archivos de texto
Hola a todos mi problema es que necesito guardar un archivo de texto que yo creo en tiempo de ejecucion pero me gustaria que el usuario pudiera indicar en donde se va a guardar ese archivo aqui esta el codigo del procedimiento que estoy utilizando
procedure TT_MovTraspasoSalida.Generardocumento; var fecha, hora, nombrearchtxt: string; begin fecha := StringReplace (DateToStr (Now), '/', '_', [rfReplaceAll]); nombrearchtxt := ExtractFilePath (Application.ExeName) + 'Traspasos\' + 'TS' + fecha + '.txt'; Memo1.Clear; IBOQueryConDoc.Open; IBOQueryConDoc.First; while not (IBOQueryConDoc.EOF) do begin Memo1.Lines.Add (IBOQueryConDocACO_CODIGO.AsString + ',' + IBOQueryConDocSAD_CANTIDAD.AsString); IBOQueryConDoc.Next; end; Memo1.Lines.SaveToFile (nombrearchtxt); ShowMessage ('Se a generado un documento para este traspaso en: ' + nombrearchtxt); end; el archivo que necesito guardar es nombrearchtxt, por lo pronto estoy extrayendo el nombre del directorio donde se encuentra el ejecutable de mi aplicacion y lo guardo en un subdirectorio 'Traspasos' pero lo que necesito es mediante un dialogo que el usuario pueda decirle a mi aplicacion donde desea guardar este archivo Gracias anticipadas por su ayuda |
busca TSaveDialog en la ayuda de Delphi, verás que trae un ejemplo muy bueno para lo que quieras hacer.
|
Gracias por tu respuesta
la ayuda de mi delphi no esta funcionando en este momento pero he probado el componente que me dijiste y ha funcionado muy bien nada mas que ahora tengo otra pregunta ¿Se puede hacer que el usuario no pueda darle el nombre al archivo? porque se lo debo de generar yo mismo y orita lo que estoy haciendo es mostrar el nombre que genere en el dialogo pero quisiera que no pudieran modificarlo no se si alguna de las propiedades de este componente me permitan hacer esto aqui esta el nuevo codigo y gracias nuevamente por tu respuesta procedure TT_MovTraspasoSalida.Generardocumento; var fecha, hora, nombrearchtxt: string; begin fecha := StringReplace (DateToStr (Now), '/', '_', [rfReplaceAll]); hora := StringReplace (TimeToStr (Now), ':', '', [rfReplaceAll]); hora := StringReplace (hora, '.', '', [rfReplaceAll]); Memo1.Clear; SaveDialog1.FileName := 'TS' + fecha + StrSinEspa (hora) + '.txt'; if not SaveDialog1.Execute then exit; begin nombrearchtxt := SaveDialog1.FileName; end; IBOQueryConDoc.Open; IBOQueryConDoc.First; while not (IBOQueryConDoc.EOF) do begin Memo1.Lines.Add (IBOQueryConDocACO_CODIGO.AsString + ',' + IBOQueryConDocSAD_CANTIDAD.AsString); IBOQueryConDoc.Next; end; Memo1.Lines.SaveToFile (nombrearchtxt); ShowMessage ('Se a generado un documento para este traspaso en: ' + nombrearchtxt); end; |
Hola jarr-o, puedes utilizar la función SelectDirectory que te muestra un cuadro de dialogo para poder seleccionar el directorio. Para que te funcione debes añadir en uses la unidad FileCtrl.
Saluditos |
Cita:
Saluditos |
Gracias por sus respuestas en esta ocasion al final he utilizado selectdirectory
Nos vemos la proxima |
| La franja horaria es GMT +2. Ahora son las 13:55:31. |
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