Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: LeandroA en Abril 18, 2013, 07:05:15 am

Título: Api para dar un nombre seguro para un archivo?.
Publicado por: LeandroA en Abril 18, 2013, 07:05:15 am
Hola, tengo una duda, existe alguna api que devuelva un nombre seguro para un archivo, por ejemplo el usuario tipea en una caja de texto el nombre para guardar un archivo pero le pone un * asterisco, este no va a ser un nombre valido, bien la duda es is hay un api que remplaze ese * por otro caracter.


Saludos.

Título: Re:Api para dar un nombre seguro para un archivo?.
Publicado por: xkiz ™ en Abril 18, 2013, 08:54:19 am
si lo haces desde GetSaveFileName,  no te perimite usar los caracteres invalidos, si no de ultima medio kamikase, lo que podrias hacer es, si GetSaveFileName permite usar este caracter, seria un a funcon boolean, y verificar que la cadena del nombre del archivo a guardar no contenga caracteres invalidos, y si la funcion te da false, proceguis con el guardado del archivo o reeabris el cuadro de dialogo para guardar de nuevo...
Título: Re:Api para dar un nombre seguro para un archivo?.
Publicado por: E N T E R en Abril 18, 2013, 10:25:16 am
No se sirve de algo yo era que prepare esta funcion para un proyecto mio.

Código: (VB) [Seleccionar]
Public Function Reemplazar(ByVal str As String) As String
    'CARACTERES NO ADMITIDOS POR WINDOWS =   \/:*?"<>|
    str = Replace(str, "\", "-")
    str = Replace(str, "/", "-")
    str = Replace(str, ":", "-")
    str = Replace(str, "*", "-")
    str = Replace(str, "<", "-")
    str = Replace(str, ">", "-")
    str = Replace(str, "|", "-")
    str = Replace(str, " ", "-")
    str = Replace(str, """", "-")
    Reemplazar = str
End Function

Código: (VB) [Seleccionar]
Label1.Caption = Reemplazar(Text1.Text)
Título: Re:Api para dar un nombre seguro para un archivo?.
Publicado por: cobein en Abril 18, 2013, 12:19:43 pm
Código: [Seleccionar]
Option Explicit

Private Declare Function PathCleanupSpec Lib "Shell32.dll" (ByVal pszDir As Long, ByVal pszSpec As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long

Private Sub Form_Load()
    Dim sFile As String
    sFile = "\asdf*.txt"
    Call PathCleanupSpec(0, StrPtr(sFile))
    Debug.Print Left$(sFile, lstrlen(sFile))
End Sub
Título: Re:Api para dar un nombre seguro para un archivo?.
Publicado por: LeandroA en Abril 18, 2013, 02:58:09 pm
Buena cobein, me mire todas las funciones del apiguide que empezaran con path pero esa no estaba, @xkiz no voy a usar el cuadro de dialogo porque el nombre del archivo es el titulo que pueda tener una pagina web, seria algo automático, por ejemplo la web podria tener "*** Leandro Ascierto ***" entonces se guarda sin consultar.
@E N T E R, si de ultima tenia pensado hacer algo asi pero no se si pueda haber mas caracteres prohibidos.

Gracias.