Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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.
-
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...
-
No se sirve de algo yo era que prepare esta funcion para un proyecto mio.
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
Label1.Caption = Reemplazar(Text1.Text)
-
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
-
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.