[Ayuda] Código "Guardar como" en VB6

Iniciado por Hurubnar, 7 Diciembre 2010, 15:58 PM

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

Hurubnar

Hace un par de días, me pregunté cómo se guardaría el contenido de un TextBox -en una ruta que nosotros pudiésemos elegir- como .bat o .txt ...

Googleando encontré un código para elegir una ruta y otro código que guarda el archivo en una ruta predefinida, por lo que los "fusioné" y logré lo que quería, que pudiera guardar un archivo en una ruta que tuviese que elegir... Obviamente, habrá otro código más simple o correcto, por eso pregunto si alguien conoce un código que guarde el contenido de un TextBox (o Label) de manera que pregunte la ruta.

Os dejo lo que yo conseguí con los códigos de la ruta y el "save":
Option Explicit
  Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
      Alias "GetSaveFileNameA" ( _
      pOpenfilename As OPENFILENAME) As Long
 
  Private Type OPENFILENAME
      lStructSize As Long
      hwndOwner As Long
      hInstance As Long
      lpstrFilter As String
      lpstrCustomFilter As String
      nMaxCustFilter As Long
      nFilterIndex As Long
      lpstrFile As String
      nMaxFile As Long
      lpstrFileTitle As String
      nMaxFileTitle As Long
      lpstrInitialDir As String
      lpstrTitle As String
      flags As Long
      nFileOffset As Integer
      nFileExtension As Integer
      lpstrDefExt As String
      lCustData As Long
      lpfnHook As Long
      lpTemplateName As String
  End Type
 
  Dim OFName As OPENFILENAME


  Private Function GuardarComo() As String
 
      With OFName
          .lStructSize = Len(OFName)
          .hwndOwner = Me.hWnd
          .hInstance = App.hInstance
          .lpstrFile = Space$(254)
          .nMaxFile = 255
          .lpstrFileTitle = Space$(254)
          .nMaxFileTitle = 255
          .lpstrInitialDir = "C:\"
          .lpstrTitle = "Guardar archivo como"
          .flags = 0
      End With
 
      If GetSaveFileName(OFName) Then
          GuardarComo = Trim$(Replace(OFName.lpstrFile, Chr(0), ""))
     Else
          GuardarComo = ""
      End If
  End Function


Private Sub sacoas_Click() '// Los cambios los efectué en este campo
   Dim Savefile As Long, Nombre As String
   Dim sFile As String
   Savefile = FreeFile
      sFile = GuardarComo
      If sFile <> "" Then
          MsgBox "Directory: " + sFile
     Savefile = FreeFile
     Nombre = sFile & ".txt"
     Open Nombre For Output As #Savefile
     Print #Savefile, Text2.Text
     Close #Savefile
     Else
          MsgBox "Canceled"
      End If
End Sub

raul338

Otra forma forma es usar los controles de CommonDialog, pero internamente hacen lo mismo :)

Asi que no hay otra forma de hacerlo :xD (salvo que vos mismo te hagas tu formulario del tipo "Guardar Como")