Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: fraktal en 14 Septiembre 2006, 13:50 pm



Título: common dialog, guardar resulado
Publicado por: fraktal en 14 Septiembre 2006, 13:50 pm
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.



Título: Re: common dialog, guardar resulado
Publicado por: SheKeL_C$ en 14 Septiembre 2006, 14:09 pm
Código:
'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


Título: Re: common dialog, guardar resulado
Publicado por: fraktal en 14 Septiembre 2006, 20:33 pm
Gracias Shekel, asi no daba con ello. Lo pondre en practica. Saludos!


Título: Re: common dialog, guardar resulado
Publicado por: soplo en 15 Septiembre 2006, 00:37 am
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

Código:
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


Título: Re: common dialog, guardar resulado
Publicado por: fraktal en 15 Septiembre 2006, 11:53 am
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.
Código:
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


Título: Re: common dialog, guardar resulado
Publicado por: ~~ en 15 Septiembre 2006, 17:24 pm
Hola:

Mira esta linea:

Código:
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


Título: Re: common dialog, guardar resulado
Publicado por: fraktal en 16 Septiembre 2006, 14:06 pm
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