Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2011, 10:42
oskarrr
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Abrir/Guardar/Guardar como desde Menu Contextual

Buenas. Tengo creada una aplicación. Guardo y abro archivos sin problemas. Lo que quiero es que al darle a guardar, si aun no está guardado el archivo salga el diálogo tipo "Guardar como", y si ya está guardado, que con solo darle a guardar se guarde sin tener que decirle otra vez donde está el archivo.

Código:
'CODIGO PARA ABRIR ARCHIVO

Private Sub AbrirPresupuesto_Click()
Dim OFName As OPENFILENAME
Dim RutaArchivo As String
Dim Variable
       
    With OFName
        .lStructSize = Len(OFName)
        'Establecemos el hwnd del form
        .hwndOwner = Me.hWnd
        'Establecemos el numero de instancia de la aplicacion
        .hInstance = App.hInstance
        'Establecemos el filtro de archivos a mostrar, _
         en este caso txt y todos los ficheros
        .lpstrFilter = "Archivos de texto (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _
                       "Todos los archivos (*.*)" + Chr$(0) + "*.*" + Chr$(0)
        'Acá debemos crear un buffer para el archivo
        .lpstrFile = Space$(254)
        'Establecemos el tamaño maximo retornado
        .nMaxFile = 255
        'Creamos un buffer para el titulo del archivo
        .lpstrFileTitle = Space$(254)
        'Establecemos el tamaño maximo retornado
        .nMaxFileTitle = 255
        'Establecemos el directorio por defecto que mostrará el dialogo
        '.lpstrInitialDir = "C:\"
        'El title
        .lpstrTitle = "Abrir archivos"
        'Flasgs que detereminan caracteristicas del dialogo
        .flags = 0
    End With
       
    
    'Abrimos el cuadro de diálogo pasándole _
     a GetOpenFileName la estructura anterior
    If GetOpenFileName(OFName) Then
        RutaArchivo = Trim$(OFName.lpstrFile)
        
            Open RutaArchivo For Input As #1
                        
            Dim linea As String, Total As String
            List1.Clear
            Do Until EOF(1)
            Line Input #1, linea
                List1.AddItem linea
            Loop
            
            Close #1
    SaveSetting "RutaArchivo", "Valores", "Path", txtruta.Text
    SaveSetting "NombreArchivo", "Valores", "Path", txtarchivo.Text

    Close #1
    

    End If
    

    
End Sub
Código:
'CÓDIGO "GUARDAR COMO"

Private Sub guardar_como_Click()
Dim sFile As String

'TareasPendientes: Agregar código 'mnuFileSaveAs_Click'.
'MsgBox "Agregar código 'mnuFileSaveAs_Click'."
With dlgCommonDialog
.DialogTitle = "Guardar"
.CancelError = False
'Pendiente: establecer los indicadores y atributos del control common dialog
.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"

.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With


Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
    
' Comprobar archivo
If fso.FileExists(sFile) = "Verdadero" Then
    If MsgBox("El archivo ya existe. ¿Desea reemplazarlo?", vbExclamation + vbYesNo, "Reemplazar Archivo") = vbYes Then
GoTo Sigueeee
End If
End If

Sigueeee:


Dim canalLibre As Integer
'Obtenemos un canal libre que nos dará
'el sistema oparativo para poder operar
canalLibre = FreeFile
' Abrimos el fichero en el canal dado
Open sFile For Output As #canalLibre

    
'Escribimos el contenido del TextBox al fichero
        Print #canalLibre, var1
        Print #canalLibre, var2
        
                
Close #canalLibre

SaveSetting "RutaArchivo", "Valores", "Path", txtruta.Text
SaveSetting "NombreArchivo", "Valores", "Path", txtarchivo.Text


End Sub
Código:
Private Sub Form_Load()



txtruta.Text = GetSetting("RutaArchivo", "Valores", "Path", "NO_HAY_PATH")
txtarchivo.Text = GetSetting("NombreArchivo", "Valores", "Path", "NO_HAY_PATH")

End Sub

Última edición por oskarrr; 14/09/2011 a las 05:34