INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Dateien in Verzeichnis auflisten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.06.2008, 11:01
Beitrag #1

Evast Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2006



kA



Dateien in Verzeichnis auflisten
Hallo,

ich arbeite mich gerade in die Benutzung von VBS unter DIAdem ein und finde in der Dokumentation nicht die Funktion um alle Dateien in einem Verzeichnis aufzulisten. Bin für einen Tipp dankbar!

Grüße
Alle Beiträge dieses Benutzers finden
to top
Anzeige
09.06.2008, 08:22
Beitrag #2

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Dateien in Verzeichnis auflisten
Hallo Evast,

die Funktion lautet FileNameGet. Eine ausführliche Beschreibung und Beispiele findest du in der DIAdem-Hilfe.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
10.06.2008, 07:19
Beitrag #3

Evast Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2006



kA



Dateien in Verzeichnis auflisten
' schrieb:die Funktion lautet FileNameGet. Eine ausführliche Beschreibung und Beispiele findest du in der DIAdem-Hilfe.
Auf diese Funktion war ich auch schon gestoßen. Die Hilfe sagt hierzu: "Opens the standard dialog box for loading and saving files.". Ich möchte aber programmatisch alle Dateien in einem Verzeichnis auflisten, ohne Interaktion mit dem Nutzer. Dazu scheint mir diese Funktion nicht in der Lage zu sein.

Viele Grüße
Alle Beiträge dieses Benutzers finden
to top
10.06.2008, 13:41
Beitrag #4

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Dateien in Verzeichnis auflisten
Hallo Evast,

sorry, da habe ich dich wohl falsch verstanden. Es ist richtig, FileNameGet ist für eine Interaktion konzipiert. Für den von dir beschriebenen Fall kannst du den Befehl DirLstWrite verwenden.

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
11.06.2008, 22:33
Beitrag #5

Evast Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2006



kA



Dateien in Verzeichnis auflisten
' schrieb:Für den von dir beschriebenen Fall kannst du den Befehl DirLstWrite verwenden.
Carpe DIAdem

Hallo,

danke für die Hilfe, das war es was ich suchte. Da die Funktion beschrieben wurde durch "Writes file names to an ASCII file" hatte ich darüber hinweggelesen, dass man die Dateinamen auch ohne Umweg über das Schreiben in eine Datei erhalten kann.

Ist das eigentlich auch möglich bei der Funktion 'FileNameGet', die ich in einer anderen Funktion benötige? Wenn ich hier die Spezifikation des Namens für die Zieldatei (FileDlgASCIIName) weglasse, kann ich im Dialog nur noch eine einzelne Datei öffnen. Wie kann ich auch mehrere Dateien öffnen ohne dabei eine Datei schreiben zu müssen?

Außerdem ist mir aufgefallen, dass beide Funktionen immer im DIAdem-Startordner starten, wenn 'DataReadPath' als Startpfad angegeben wird. Wie kann ich erreichen, dass der zuletzt verwendete Ordner als Ausgangspunkt verwendet wird, so dass bei Aufruf nicht die gesamte Navigation durch die Ordnerstruktur erfolgen muss? Notfalls auch durch die Verwendung von Static-Variablen im Script o.ä., wobei ich den Eindruck habe, dass es in VBS keine statischen Variablen gibt!?

Viele Grüße
Alle Beiträge dieses Benutzers finden
to top
12.06.2008, 09:34
Beitrag #6

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Dateien in Verzeichnis auflisten
Hallo Evast,

hier ein leicht modifiziertes Beispiel:

Dim MyFileNames, iCount, MyPath
MyPath = "D:Test"
Call FileNameGet("ANY", "FileRead", MyPath, "TDM data (*.tdm),*.tdm", "d:testAll.lst", True, "Data selection")

MyFileNames = Split(FileDlgFileName,"|")
For iCount = 0 To Ubound(MyFileNames)
Call msgbox(MyFileNames(iCount))
Next

MyPath gibt den gewünschten Pfad vor.
Zurzeit muss man in der Tat noch die *.LST datei angeben. (In DIAdem 11 gibt es aber einen ergänzenden Befehl bei dem das dann nicht mehhr notwendig ist - FileDlgShow). Aber schon jetzt werden die ausgewählten Dateien in einem String gespeichert (FileDlgFileName).

Carpe DIAdem
Alle Beiträge dieses Benutzers finden
to top
Anzeige
16.06.2008, 23:39
Beitrag #7

Evast Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2006



kA



Dateien in Verzeichnis auflisten
Zitat:Zurzeit muss man in der Tat noch die *.LST datei angeben. (In DIAdem 11 gibt es aber einen ergänzenden Befehl bei dem das dann nicht mehhr notwendig ist - FileDlgShow).
OK, das wird eine Verbesserung werden.

Zitat:MyPath gibt den gewünschten Pfad vor.
Ja, das ist mir schon klar. Mein Code sieht z.Zt. ähnlich wie dieses Beispiel aus. Meine Frage war, wie ich erreichen kann, dass das Skript bei mehrfachen Aufrufen jeweils bei dem zuletzt gewählten Ordner startet (wie das in vielen Programmen üblich ist). Dazu müsste eine Möglichkeit genutzt werden diesen Pfad zwischen zwei Skript-Aufrufen zu speichern.

Vielen Dank für die Hilfe und viele Grüße
Alle Beiträge dieses Benutzers finden
to top
17.06.2008, 08:19
Beitrag #8

Carpe_DIAdem Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 94
Registriert seit: Jul 2007

alle DIAdem-Versionen
1989
de


Deutschland
Dateien in Verzeichnis auflisten
Hallo Evast,

der FileNameGet-Dialog ist ein Windows-Standard Dialog, der bei jedem Aufruf parametriert werden muss. Um das zuletzt benutzte Verzeichis beim nächsten Aufruf als Startverzeichnis zu parametrieren, muss der Inhalt der Variablen FileDlgDir in eine globale Variable zwischengespeichert werden. Am Anfang des Scripts kann geprüft werden ob die globale Variable schon existiert. Wenn nicht wird sie angelegt und initialisiert. Im anderen Fall ist der letzte Pfad der aktuelle Inhalt. Dieser wird am Ende des Scriptes gesetzt.

Dim sMyFileNames, iCount

If Not ItemInfoGet("sMyPath") Then
Call GlobalDim("sMyPath")
sMyPath = DataReadPath
End If

Call FileNameGet("ANY", "FileRead", sMyPath, "TDM data (*.tdm),*.tdm", "All.lst", True, "Data selection")
sMyFileNames = Split(FileDlgFileName,"|")
For iCount = 0 To Ubound(sMyFileNames)
Call msgbox(FileDlgDir & " - " & sMyFileNames(iCount))
Next

sMyPath = FileDlgDir


Carpe DIadem
Alle Beiträge dieses Benutzers finden
to top
18.06.2008, 19:22
Beitrag #9

Evast Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2006



kA



Dateien in Verzeichnis auflisten
' schrieb:Um das zuletzt benutzte Verzeichis beim nächsten Aufruf als Startverzeichnis zu parametrieren, muss der Inhalt der Variablen FileDlgDir in eine globale Variable zwischengespeichert werden.
Damit ist die Aufgabe gelöst. Vielen Dank für die Hilfestellungen und das hilfreiche Beispiel!

Gruß
Alle Beiträge dieses Benutzers finden
to top


Gehe zu: