VBS - Datei auswählen
Guten Abend zusammen,
ich bin auf der Suche nach dem Dateidialog. Sprich das Script läuft, öffnet den Dialog und ich kann dann eine Datei auswählen. Danach soll der Inhalt zeilenweise ausgelesen werden und in eine Variable speichern.
Kl. Sache am Rande: Wie kann ich ein String splitten?! Das Trennzeichen wäre z.B. ein Punkt. Der String davor bzw. danach sollte in eine extra Variable gespeichert werden.
Schon mal vielen Dank an die Programmierjungs / mädels. *gg*
Grüße
Dani
ich bin auf der Suche nach dem Dateidialog. Sprich das Script läuft, öffnet den Dialog und ich kann dann eine Datei auswählen. Danach soll der Inhalt zeilenweise ausgelesen werden und in eine Variable speichern.
Kl. Sache am Rande: Wie kann ich ein String splitten?! Das Trennzeichen wäre z.B. ein Punkt. Der String davor bzw. danach sollte in eine extra Variable gespeichert werden.
Schon mal vielen Dank an die Programmierjungs / mädels. *gg*
Grüße
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 55751
Url: https://administrator.de/contentid/55751
Ausgedruckt am: 19.11.2024 um 19:11 Uhr
17 Kommentare
Neuester Kommentar
Hi,
HTH,
gemini
Kl. Sache am Rande: Wie kann ich ein String splitten?! Das Trennzeichen wäre z.B.
ein Punkt. Der String davor bzw. danach sollte in eine extra Variable gespeichert werden.
ein Punkt. Der String davor bzw. danach sollte in eine extra Variable gespeichert werden.
strString = "irgendwas.und.nochwas"
arrString = Split(strString,".", -1, 1)
MsgBox arrString(0) ' gibt 'irgendwas' aus
MsgBox arrString(1) ' gibt 'und' aus
MsgBox arrString(2) ' gibt 'nochwas' aus
HTH,
gemini
Hallo Dani!
Nur kurz: Für die "Randsache" könntest Du die "Split"-Funktion verwenden:
Zur Beachtung: Hinter dem letzten Punkt wird hier noch ein leerer String gefunden.
Grüße
bastla
[Edit] @gemini: Aber ich hab' mehr Punkte ... [/Edit]
Nur kurz: Für die "Randsache" könntest Du die "Split"-Funktion verwenden:
strTestText = "Ein.String.mit.vielen.Punkten."
arrTeile = Split(strTestText, ".")
WScript.Echo CStr(UBound(arrTeile) + 1) & " Teile:"
For i = 0 To UBound(arrTeile)
WScript.Echo arrTeile(i)
Next
Grüße
bastla
[Edit] @gemini: Aber ich hab' mehr Punkte ... [/Edit]
@gemini
Das ist aber nett von Dir - obwohl: so ganz ohne Leistungsdruck postet sich's doch viel entspannter ...
Außerdem: Auch so würde ich Dich punktemäßig wohl nicht so bald einholen (womit ich andererseits gut leben kann ).
Grüße
bastla
P.S.: @Dani - Ich habe nicht vergessen, worum's hier eigentlich gehen sollte ...
Wenn Frank die Bewertung nicht abgeschalten hätte bekämst du in jedem Fall 5 Punkte.
Das ist aber nett von Dir - obwohl: so ganz ohne Leistungsdruck postet sich's doch viel entspannter ...
Außerdem: Auch so würde ich Dich punktemäßig wohl nicht so bald einholen (womit ich andererseits gut leben kann ).
Grüße
bastla
P.S.: @Dani - Ich habe nicht vergessen, worum's hier eigentlich gehen sollte ...
@Dani
Vielleicht kannst Du damit etwas anfangen: http://www.visualbasicscript.com/m_1575/tm.htm
Anderer Ansatz hier: http://dieseyer.de/scr-html/alle.html
Einer noch: http://www.scriptinganswers.com/vault/Files%20and%20Folders/
Grüße
bastla
[Edit] Der Suchbegriff ist natürlich jeweils "BrowseForFile". [/Edit]
Vielleicht kannst Du damit etwas anfangen: http://www.visualbasicscript.com/m_1575/tm.htm
Anderer Ansatz hier: http://dieseyer.de/scr-html/alle.html
Einer noch: http://www.scriptinganswers.com/vault/Files%20and%20Folders/
Grüße
bastla
[Edit] Der Suchbegriff ist natürlich jeweils "BrowseForFile". [/Edit]
... so, und das (gefunden hier, aber ursprünglich wohl eher von hier stammend) ist jetzt sogar (unter XP) getestet:
Anmerkung: Trennzeichen "|" musste angepasst werden.
Liste der möglichen Flags (von hier):
Grüße
bastla
[Edit] Läuft nicht unter W2000 [/Edit]
[Edit2] Liste mit Flags hinzugefügt [/Edit2]
MsgBox BrowseForFile("C:\", "JPEG Images (.jpg)|*.jpg|All Files|*.*")
Function BrowseForFile(pstrPath, pstrFilter)
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = pstrFilter
objDialog.InitialDir = pstrPath
objDialog.Flags = &H80000 + &H4 + &H8
intResult = objDialog.ShowOpen
BrowseForFile = objDialog.FileName
End Function
Liste der möglichen Flags (von hier):
Alle Flags für den "Öffnen" - Dialog:
Public Const OFN_READONLY = &H1
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_SHOWHELP = &H10
Public Const OFN_ENABLEHOOK = &H20
Public Const OFN_ENABLETEMPLATE = &H40
Public Const OFN_ENABLETEMPLATEHANDLE = &H80
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_EXTENSIONDIFFERENT = &H400
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_SHAREAWARE = &H4000
Public Const OFN_NOREADONLYRETURN = &H8000&
Public Const OFN_NOTESTFILECREATE = &H10000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOLONGNAMES = &H40000
Public Const OFN_EXPLORER = &H80000
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_LONGNAMES = &H200000
Normalerweise schreibt man das dann so:
CommonDialog.Flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
Public Const OFN_READONLY = &H1
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_SHOWHELP = &H10
Public Const OFN_ENABLEHOOK = &H20
Public Const OFN_ENABLETEMPLATE = &H40
Public Const OFN_ENABLETEMPLATEHANDLE = &H80
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_EXTENSIONDIFFERENT = &H400
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_SHAREAWARE = &H4000
Public Const OFN_NOREADONLYRETURN = &H8000&
Public Const OFN_NOTESTFILECREATE = &H10000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOLONGNAMES = &H40000
Public Const OFN_EXPLORER = &H80000
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_LONGNAMES = &H200000
Normalerweise schreibt man das dann so:
CommonDialog.Flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
Grüße
bastla
[Edit] Läuft nicht unter W2000 [/Edit]
[Edit2] Liste mit Flags hinzugefügt [/Edit2]
@Biber
Abgesehen davon, dass ich mich natürlich frage, woher Du das nun schon wieder weißt: Wie hoch wäre denn "höher"?
Grüße
bastla
Abgesehen davon, dass ich mich natürlich frage, woher Du das nun schon wieder weißt: Wie hoch wäre denn "höher"?
Grüße
bastla
@bastla
Download: Microsoft .net Framework 3.0 (32 Bit und 64-Bit-Version)
Allerdings -da hast Du natürlich Recht- wird sich das wohl kaum auf W2000 installieren lassen.
Also streiche das "oder höher". Und vielleicht auch das "2.0".
Kann sein, dass es auch schon mit NET 1.1 lief.
ist mir eigentlich auch egal
@Dani
BTW, wo ich Dich grad sehe... wie ist denn der Status in Deinem MySQL-Thread??
Wie hoch wäre denn "höher"?
Um mal eine meiner heissgeliebten Tankstellen-PC-Zeitschriften zu zitieren:Download: Microsoft .net Framework 3.0 (32 Bit und 64-Bit-Version)
Allerdings -da hast Du natürlich Recht- wird sich das wohl kaum auf W2000 installieren lassen.
Also streiche das "oder höher". Und vielleicht auch das "2.0".
Kann sein, dass es auch schon mit NET 1.1 lief.
ist mir eigentlich auch egal
@Dani
BTW, wo ich Dich grad sehe... wie ist denn der Status in Deinem MySQL-Thread??
@Biber
Auch wenn's auch mir nicht ganz sooo wichtig ist (und nur falls Du's bei der Hand hast): Was bräuchte ich außer dem .NET-Framework noch (derzeit Fehlermeldung: "ActiveX-Komponenten kann kein Objekt erstellen: 'UserAccounts.CommonDialog' / Code: 800A01AD")?
Grüße
bastla
Auch wenn's auch mir nicht ganz sooo wichtig ist (und nur falls Du's bei der Hand hast): Was bräuchte ich außer dem .NET-Framework noch (derzeit Fehlermeldung: "ActiveX-Komponenten kann kein Objekt erstellen: 'UserAccounts.CommonDialog' / Code: 800A01AD")?
Grüße
bastla
@bastla
Hm...ich habe auch noch ein wenig recherchiert... Kann sein, dass es auch unter W2000 nicht läuft, weil eigentlich das UserAccounts-Control-Panel (Nusrmgr.cpl) benötigt wird.
Und das gibt es ja erst ab WinXP.
Gestern hätte/hatte ich jedenfalls diesen FileDialog noch dem NET-Framework zugeordnet.
Sorry, wenn ich da unerfüllbare Hoffnungen geweckt haben sollte.
Wieso lesen hier denn so selten die Unterschleißheimer mit, die vielleicht mal Verbindliches aussagen könnten?
Grüße
Biber
>"also ich habe nun eine L" ?!? *rotwerd*
Wollen wir mal hoffen, dass es eine "Lösung" war... *ggg
Hm...ich habe auch noch ein wenig recherchiert... Kann sein, dass es auch unter W2000 nicht läuft, weil eigentlich das UserAccounts-Control-Panel (Nusrmgr.cpl) benötigt wird.
Und das gibt es ja erst ab WinXP.
Gestern hätte/hatte ich jedenfalls diesen FileDialog noch dem NET-Framework zugeordnet.
Sorry, wenn ich da unerfüllbare Hoffnungen geweckt haben sollte.
Wieso lesen hier denn so selten die Unterschleißheimer mit, die vielleicht mal Verbindliches aussagen könnten?
Grüße
Biber
>"also ich habe nun eine L" ?!? *rotwerd*
Wollen wir mal hoffen, dass es eine "Lösung" war... *ggg