Code-Beispiel
Dialog zum öffnen oder speichern einer Datei
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Eternal_Pain | 14.06.2007 |
Quelle:fb@rchive
Author:Volta
Window-Dialog zum Öffnen oder Speichern einer Datei im Konsolenfenster.
Ich hoffe, das Listing erklärt sich durch die Kommentare selbst.
(läuft auch unter fb0.17b)
'03/13/06 - FB 0.15b - WIN32 console application - by Volta
'Nutzt den komfortablen Window-Dialog zur Auswahl des Laufwerk/Pfad/Dateinamens
'zum öffnen oder speichern einer Datei in Consolenanwendungen
#INCLUDE ONCE "WINDOWS.BI"
#Include Once "win\COMMDLG.BI"
Declare Function LoadSaveDialog (_
savedlog As Integer = 0,_
filter As String = "",_
fltrindex As Integer = 1,_
initdir As String = "",_
strDefExt As String = "") As String
'Voreinstellungen:
'savedlog = 0 "Datei Öffnen", 1(<>0) "Datei Speichern"
'filter = "" "Alle Dateien", sonst siehe fil
'fltrindex = 1, sonst welcher Eintrag, der bei filter angegebenen Auswahl, aktiv ist
'initdir = "" = "." aktueller Pfad, sonst angegebener Pfad
'strDefExt = "" keine Vorgabe, sonst z.B. "bak" als Vorgabe der Endung zum Speichern
Dim As String DateiName, fil
fil = "Basic Dateien (*.BAS)" + Chr(0) + "*.BAS" + Chr(0) _
+ "Text Dateien (*.TXT)" + Chr(0) + "*.TXT" + Chr(0)_
+ "Bild Dateien (*.BMP)" + Chr(0) + "*.BMP" + Chr(0)_
+ "EXE Dateien (*.EXE)" + Chr(0) + "*.EXE" + Chr(0)_
+ "Alle Dateien (*.*)" + Chr(0) + "*.*" + Chr(0, 0)
'Beispiele:
'einfachster Aufruf "Datei Öffnen", alle Vorgaben werden übernommen.
'DateiName = LoadSaveDialog
'Aufruf "Datei Öffnen" mit Filter, alle anderen Vorgaben werden übernommen.
'DateiName = LoadSaveDialog (,fil)
'Aufruf "Datei Öffnen" mit Filter Index 2 (TXT), alle anderen Vorgaben werden übernommen.
'DateiName = LoadSaveDialog (,fil,2)
'Aufruf "Datei Öffnen" im Pfad "c:\", alle anderen Vorgaben werden übernommen.
DateiName = LoadSaveDialog (,,,"c:\")
'Aufruf "Datei Speichern", alle Vorgaben werden übernommen.
'DateiName = LoadSaveDialog (1)
'Aufruf "Datei Speichern" wenn keine Dateiendung angegeben wird, "bak" als
'Endung benutzen, alle anderen Vorgaben werden übernommen.
'DateiName = LoadSaveDialog (1,,,,"bak")
Print DateiName
Print "Verdisch.."
Sleep
End
Function LoadSaveDialog (savedlog As Integer, filter As String, fltrindex As Integer,_
initdir As String, strDefExt As String) As String
Dim FB_OFN AS OPENFILENAME
FB_OFN.lStructSize = Len(FB_OFN)
FB_OFN.hwndOwner = 0 ' nur Console
FB_OFN.hInstance = 0
Dim strFilter As String
If filter = "" Then
strFilter = "Alle Dateien (*.*)" + Chr(0) +"*.*" + Chr(0, 0) 'Vorgabe
Else
strFilter = filter + Chr(0, 0)
End If
FB_OFN.lpstrFilter = StrPtr(strFilter)
FB_OFN.nFilterIndex = fltrindex
Dim strFile As String *2048
strFile = Space(2047) + Chr(0)
FB_OFN.lpstrFile = StrPtr(strFile)
FB_OFN.nMaxFile = Len(strFile)
Dim strFileTitle As String *2048
strFileTitle = String(2048, 0)
FB_OFN.lpstrFileTitle = StrPtr(strFileTitle)
FB_OFN.nMaxFileTitle = Len(strFileTitle)
Dim strdrstr As String
If initdir = "" Then
strdrstr = "." ' Vorgabe aktueller Pfad
Else
strdrstr = initdir
End If
FB_OFN.lpstrInitialDir = StrPtr(strdrstr)
Dim strcapt As String
If savedlog Then
strcapt = "Dateien Speichern"
FB_OFN.lpstrTitle = StrPtr(strcapt)
If strDefExt > "" Then
Dim strdext As String
strdext = strDefExt
FB_OFN.lpstrDefExt = StrPtr(strdext)
End If
FB_OFN.flags = OFN_EXPLORER Or OFN_LONGNAMES Or OFN_OVERWRITEPROMPT Or OFN_HIDEREADONLY
If GetSaveFileName(@FB_OFN) Then LoadSaveDialog = Trim(strFile)
Else
strcapt = "Dateien Öffnen"
FB_OFN.lpstrTitle = StrPtr(strcapt)
FB_OFN.flags = OFN_EXPLORER Or OFN_LONGNAMES Or OFN_CREATEPROMPT Or _
OFN_NODEREFERENCELINKS Or OFN_HIDEREADONLY
If GetOpenFileName(@FB_OFN) Then LoadSaveDialog = Trim(strFile)
End If
End Function
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 13.06.2007 von Eternal_Pain angelegt.
- Die aktuellste Version wurde am 14.06.2007 von Eternal_Pain gespeichert.
|
|