Autor Tema: Api para dar un nombre seguro para un archivo?.  (Leído 4372 veces)

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

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Api para dar un nombre seguro para un archivo?.
« 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.


xkiz ™

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 283
  • Reputación: +30/-11
    • Ver Perfil
    • xkiz ™
Re:Api para dar un nombre seguro para un archivo?.
« Respuesta #1 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...

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Api para dar un nombre seguro para un archivo?.
« Respuesta #2 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)
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Api para dar un nombre seguro para un archivo?.
« Respuesta #3 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

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Api para dar un nombre seguro para un archivo?.
« Respuesta #4 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.