common dialog, guardar resulado

Iniciado por fraktal, 14 Septiembre 2006, 13:50 PM

0 Miembros y 1 Visitante están viendo este tema.

fraktal

Hola, como se maneja el resultado optenido por el control Common Dialog?
Por ejemplo, pongo en el evento click
cmdopen.showopen
y eligo un archivo
y me devuelve al formulario
pero si he elegido un archivo, como lo guardo?
he tratado de guardarlo en una varible
pero me falla.
rpt = cmdopen.showopen
o un color, o cualquier resultado del control, no se como guardarlo para poder usarlo.
Gracias.


SheKeL_C$

'CD es el CommondDialog1

Private Sub Command1_Click()
'PARA ESCRIBIR EN UN ARCHIVO
cd.Filter = "Archivos de texto|*.txt"    'es un filtro que solo puedes coger los txt, si kieres borralo
cd.ShowSave                                     'muestra la pantalla para elegir el archivo
If cd.FileName = "" Then Exit Sub               'Sino no as seleccionao ninguna se va fuera
   
    Open cd.FileName For Append As #1           'Se abre el archivo
        Print #1, Text1                         'se escribe lo que ay en el text1
    Close #1                                    'se cierra

End Sub

fraktal

Gracias Shekel, asi no daba con ello. Lo pondre en practica. Saludos!

soplo

Una apostilla mas.
Si al comondialog le pones la propiedad cancel a true entonces puedes controlar si pulsan ESC porque se genera un error.

'CD es el CommondDialog1

Private Sub Command1_Click()
'PARA ESCRIBIR EN UN ARCHIVO

on error goto fallo
cd.Filter = "Archivos de texto|*.txt"    'es un filtro que solo puedes coger los txt, si kieres borralo
cd.ShowSave                                     'muestra la pantalla para elegir el archivo
If cd.FileName = "" Then Exit Sub               'Sino no as seleccionao ninguna se va fuera
   
    Open cd.FileName For Append As #1           'Se abre el archivo
        Print #1, Text1                         'se escribe lo que ay en el text1
    Close #1                                    'se cierra
exit sub
fallo:
' lo que pongas aquí es lo que ocurre si pulsaron ESC

End Sub
Callar es asentir ¡No te dejes llevar!

fraktal

Ok, gracias por el nuevo aporte. SOlo hay una cosa que no entiendo. DIgamos que cuando terminaria el procedimiento, se pone a posta EXIT SUB para que salga, y luego se llama al label fallo:  y se pone lo que se quiera no?. Y no entiendo eso, la llamada a exit sub, poner el label y luego el end sub. Asi funciona pero no entiendo como si se dice salir del procedimiento, lee el volumen y luego ya si sale por el END SUB. esto es lo k no entiendo. Aki pongo una variacion del codigo pues ya lo he entendido.

Private Sub cmdexe_Click()
On Error GoTo fallo

cd.Filter = "archivos de texto|*.txt"
cd.ShowOpen
If cd.FileName = " " Then Exit Sub
var = cd.FileName
Print var
Exit Sub
fallo:
rpt = MsgBox("alerta", vbCritical)
End Sub

~~

Hola:

Mira esta linea:

On Error GoTo fallo

Solamente si se produce un error en el programa (en este caso q el usuario le de a cancelar) salta a la linea indicada, en este ejemplo es fallo.
Creo q era eso lo q preguntabas

1S4ludo

fraktal

Si Eon, era eso, pero mi pregunta se referia mas a que normalmente un procedimiento termina con en END sub
pero lo que me referia es que cuando se usa una etiqueta como en este caso, si la forma de actuar es asi. Meter al final del procedimiento real un EXIT SUB (que supongo que a fin de cuentas viene  hacer lo mismo que el END SUB) y despues del EXIT SUB meter la etiqueta y ya el END SUB. Osea que si siempre que seusen etiquetas se procede de esta manera. Osea que el siempre el fallo: se tiene que colocar entre el exit sub y el end sub.
Saludos