' unter Projekt - Verweise den Eintrag Microsoft Scripting Runtime aktivieren ' zeilenweises Auslesen der Datei und Filtern, dann in neue Datei schreiben... ' scrrun.dll muß auf dem Rechner sein Public oFSO As New FileSystemObject Dim eStream As TextStream Dim oStream As TextStream Dim sLine As String Sub Einlesen Set eStream = oFSO.OpenTextFile(Filename, ForReading) Do Until eStream.AtEndOfStream sLine = eStream.ReadLine Loop oStream.Close end sub 'einlesen ' Set oStream = oFSO.CreateTextFile(Filename, True) ' neue Datei erzeugen ' oStream.WriteLine "IrgendEinText" ' etwas hineinschreiben, ganze Zeile Private Const MAX_PATH = 260 '********************************************************* ' Die Datenstruktur "BrowseInfo" dient der Konfiguration des Folder-Browse-Dialogs. Private Type BrowseInfo hWndOwner As Long pIDLRoot As Long pszDisplayName As Long lpszTitle As Long ulFlags As Long lpfnCallback As Long lParam As Long iImage As Long End Type '********************************************************* ' Die folgenden Konstanten sind die erlaubten Werte für BrowseInfo->ulFlags. Private Const BIF_BROWSEFORCOMPUTER = &H1000 Private Const BIF_BROWSEFORPRINTER = &H2000 Private Const BIF_BROWSEINCLUDEFILES = &H4000 Private Const BIF_DONTGOBELOWDOMAIN = &H2 Private Const BIF_RETURNFSANCESTORS = &H8 Private Const BIF_RETURNONLYFSDIRS = &H1 Private Const BIF_STATUSTEXT = &H4 'Der Dialog enthält eine Statuszeile. Die Rückruffunktion kann die Statuszeile ausfüllen. '************************************************************ CoTaskMemFree *** ' Eine Funktion zum Verwerfen von angefordertem globalen Speicher. Private Declare Sub CoTaskMemFree Lib "ole32.dll" _ (ByVal hMem As Long) '************************************************************ lstrcat *** Private Declare Function lstrcat Lib "kernel32" Alias _ "lstrcatA" (ByVal lpString1 As String, _ ByVal lpString2 As String) As Long '************************************************************ GetActiveWindow *** ' Eine Funktion zum Ermitteln des Fenster-Handles. Private Declare Function GetActiveWindow Lib "user32" () _ As Long '************************************************************ SHGetPathFromIDList *** ' Diese Funktion konvertiert eine IID-Liste in einen Pfad des Dateisystems. Private Declare Function SHGetPathFromIDList Lib "shell32" _ (ByVal pidList As Long, ByVal lpBuffer As String) As Long '*********************************************************** SHBrowseForFolder *** Rem Diese Funktion ruft den Folder-Browse-Dialog auf. Der Aufrufer muß den Speicher der IID-Liste verwerfen. Private Declare Function SHBrowseForFolder Lib "shell32" _ (lpbi As BrowseInfo) As Long '************************************************************ BrowseForFolder *** Public Function BrowseForFolder(Prompt As String) As String Dim n As Integer Dim IDList As Long Dim Result As Long Dim ThePath As String Dim BI As BrowseInfo With BI .hWndOwner = GetActiveWindow() .lpszTitle = lstrcat(Prompt, "") .ulFlags = BIF_RETURNONLYFSDIRS End With IDList = SHBrowseForFolder(BI) If IDList Then 'Speicher anfordern ThePath = String$(MAX_PATH, 0) 'IID-Liste in Pfadangabe konvertieren Result = SHGetPathFromIDList(IDList, ThePath) 'Speicher für IID-Liste verwerfen Call CoTaskMemFree(IDList) 'Alle Bytes hinter Nullbyte verwerfen n = InStr(ThePath, vbNullChar) If n Then ThePath = Left$(ThePath, n - 1) End If BrowseForFolder = ThePath End Function