ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 28.08.2001

Diese Seite wurde zuletzt aktualisiert am 28.08.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Unerlaubte Zeichen

Zurück...


Anzeige

(-hg) mailto:hg_filesystemchars@aboutvb.de

Im Prinzip können Sie in Dateinamen nahezu jedes Ascii-Zeichen verwenden. Aber wie das so ist, wenn es heißt "im Prinzip...", gibt es Ausnahmen. Einige wenige Zeichen haben nämlich eine spezielle Bedeutung für die Verwaltung des Dateisystems. Nicht erlaubt sind daher die folgenden Zeichen:

\ / : * " < > |

und alle Zeichen mit einem Ascii-Code kleiner als 32.

Die folgenden Funktionen prüfen, ob ein Zeichen zu den nicht erlaubten Zeichen gehört bzw. ob es erlaubt ist - jeweils in einer Variante, der Sie ein Zeichen als String (wobei nur dessen erstes Zeichen berücksichtigt wird) oder als Ascii-Code übergeben können.

Public Function IsInvalidFSChar(Char As String) As Boolean
  Select Case Asc(Char)
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
      IsInvalidFSChar = True
  End Select
End Function

Public Function IsValidFSChar(Char As String) As Boolean
  Select Case Asc(Char)
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
    Case Else
      IsValidFSChar = True
  End Select
End Function

Public Function IsInvalidFSAscii(ByVal Ascii As Integer) As Boolean
  Select Case Ascii
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124, Is > 255
      IsInvalidFSAscii = True
  End Select
End Function

Public Function IsValidFSAscii(ByVal Ascii As Integer) As Boolean
  Select Case Ascii
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124, Is > 255
    Case Else
      IsValidFSAscii = True
  End Select
End Function

Bei den letzteren beiden Funktionen, denen der Ascii-Code eines Zeichens übergeben wird, wird auf einen Wert größer als 255 hin geprüft.

Wollen Sie die Ascii-Codes von gerade frisch in einer TextBox eingegebenen Zeichen im KeyPress-Ereignis prüfen, können Sie die folgende Funktion KeyPressValidFSAscii verwenden. Sie gibt den übergebenen Ascii-Wert nur dann zurück, wenn es sich um ein erlaubtes Zeichen handelt. Anderenfalls gibt sie 0 zurück, so dass das Zeichen nicht in der TextBox erscheint.

Public Function KeyPressValidFSAscii(ByVal KeyAscii As Integer) _
 As Integer

  Select Case KeyAscii
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124, Is > 255
      KeyPressValidFSAscii = 0
    Case Else
      KeyPressValidFSAscii = KeyAscii
  End Select
End Function

Analog dazu gibt die Funktion CheckValidFSChar ein ihr übergebenes Zeichen nur dann zurück, wenn es zu den erlaubten Zeichen gehört, anderenfalls gibt sie einen Leeren String zurück.

Public Function CheckValidFSChar(Char As String) As String
  Select Case Asc(Char)
    Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
    Case Else
      CheckValidFSChar = Char
  End Select
End Function

Die Funktionen ContainsInvalidFSChars und ContainsNoInvalidFSChars prüfen, ob ihr übergebene längere Strings, die beispielsweise als Dateiname vorgesehen sein könnten, nicht erlaubte Zeichen enthalten.

Public Function ContainsInvalidFSChars(Str As String) As Boolean
  Dim i As Integer
  
  For i = 1 To 9
    If InStr(Str, Mid$(kInvalidFileSystemChars, i, 1)) Then
      ContainsInvalidFSChars = True
      Exit Function
    End If
  Next 'i
  For i = 0 To 31
    If InStr(Str, Chr$(i)) Then
      ContainsInvalidFSChars = True
      Exit Function
    End If
  Next 'i
End Function

Public Function ContainsNoInvalidFSChars(Str As String) _
 As Boolean

  Dim i As Integer
  
  For i = 1 To 9
    If InStr(Str, Mid$(kInvalidFileSystemChars, i, 1)) Then
      Exit Function
    End If
  Next 'i
  For i = 0 To 31
    If InStr(Str, Chr$(i)) Then
      Exit Function
    End If
  Next 'i
  ContainsNoInvalidFSChars = True
End Function

Die Funktion CheckInvalidFSChars gibt einen ihr übergebenen String nur dann zurück, wenn er keine nicht erlaubten Zeichen enthält.

Public Function CheckInvalidFSChars(Str As String) As String
  Dim i As Integer
  
  For i = 1 To 9
    If InStr(Str, Mid$(kInvalidFileSystemChars, i, 1)) Then
      Exit Function
    End If
  Next 'i
  For i = 0 To 31
    If InStr(Str, Chr$(i)) Then
      Exit Function
    End If
  Next 'i
  CheckInvalidFSChars = Str
End Function

Und nun zu guter Letzt noch die Funktion StripInvalidFSChars, die alle nicht erlaubten Zeichen aus einem übergebenen String entfernt und den "gesäuberten" String zurückgibt.

Public Function StripInvalidFSChars(Str As String) As String
  Dim l As Long
  Dim nStr As String
  Dim nLen As Long
  Dim nChar As String
  
  nStr = Str
  For l = 1 To Len(nStr)
    nChar = Mid$(nStr, l, 1)
    Select Case Asc(nChar)
      Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
      Case Else
        nLen = nLen + 1
        Mid$(nStr, nLen, 1) = nChar
    End Select
  Next 'l
  StripInvalidFSChars = Left$(nStr, nLen)
End Function

Modul modFileSystemChars (modFileSystemChars.bas - ca. 3,4 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer