Seite 1 von 1
Listbox mit ausgelesenen "Daten" füllen
Verfasst: Do, 23.08.2007 12:23
von felix
Hallo,
ich bins schon wieder.
Ich bin gerade dabei mich ins Makro schreiben einzuarbeiten, doch manchmal weiß ich nicht weiter. Ihr habt mir hier auch schon oft geholfen und darum muss ich jetzt noch mal etwas fragen.
Ich möchte aus einem Verzeichnis die vorhandenen Dateien auslesen, und dann an eine Listbox weitergeben.
Das Auslesen des Verzeichnisses funktioniert soweit, wenn ich dann aber die Ausgelesenen Dateien an die Listbox übergebe werden diese alle in einer Zeile angzeigt und nicht wie benötigt z.B. 3Dateien für jede Datei eine Zeile in der Listbox.
Diesen Code habe ich bis jetzt:
Code: Alles auswählen
Sub ListeFuellen
DIM oListBox as Object
Dim s as String
DIM sPfad as String
DIM nextFile as String, i%
DIM aListe as String
sPfad="File:///F:/RWK%20Auswertung/Ergebnislisten/" 'Verzeichnis auslesen; Makros in OO S.133
i = 1
nextFile = Dir(sPfad, 0) 'die erste Datei
while nextFile <> ""
s = s & Chr(13) &nextFile
i = i+1
nextFile = Dir
Wend
oListbox = oDlg2.getControl("ListBox1") 'Listbox füllen mit Dateinamen; Makros in OO S.563
aListe = s
oListBox.removeItems(0, oListbox.getItemCount())
oListBox.addItem(aListe, 0)
End Sub
Vielleicht kann mir jemand weiterhelfen, Vielleicht ist mein Ansatz auch total falsch.
Als Anhang ein Zip-Archiv mit einem Sreenshoot
MfG Felix
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Do, 23.08.2007 18:45
von felix
Hallo,
erstmal danke.
da ich das ganze über einen Dialog laufen lasse musste ich einige Dinge abändern.
Habs jetzt porbiert aber leider funktionierts nicht.
ich bekommen immer die Meldung ( Zeile im Code markiert (REM##########))
Basic Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden.
Code: Alles auswählen
Sub ListeFuellen
DIM oListBox as Object
Dim s as String
DIM sPfad as String
DIM nextFile as String, i%
DIM aListe as Variant
Dim arrayofstrings as variant
sPfad="File:///F:/RWK%20Auswertung/20%20Schuss/Ergebnislisten/" 'Verzeichnis auslesen; Makros in OO S.133
i = 1
nextFile = Dir(sPfad, 0) 'die erste Datei
while nextFile <> ""
s = s & Chr(44) &nextFile
i = i+1
nextFile = Dir
Wend
MsgBox(s, 0, ConvertFromURL(sPfad))
oListBox = oDlg2.getControl("ListBox1") 'Listbox füllen mit Dateinamen; Makros in OO S.563
aListe = s
reDim arrayofstrings
arrayofstrings = split(aListe,",")
REM ##########################################################
oListBox.stringitemlist = arrayofstrings() '<-Hier kommt Meldung s.o.
REM ##########################################################
oListBox.removeItems(0, oListbox.getItemCount())
oListBox.addItem(aListe, 0)
End Sub
Was hab ich falsch gemacht?
MfG Felix
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Do, 23.08.2007 23:27
von turtle47
Hallo Felix,
ich habe es nur so hinbekommen. (Pfad noch anpassen)
Code: Alles auswählen
Sub ListeFuellen
Dim oDialog as Object
DIM oListBox as Object
DIM s as Variant
DIM sPfad as String
DIM nextFile as String, i%
DIM aListe as Variant
sPfad="File:///C:/" 'Achtung:Pfad anpassen
i = 1
nextFile = Dir(sPfad, 0) 'die erste Datei
while nextFile <> ""
s = s & Chr(44) &nextFile
i = i+1
nextFile = Dir
Wend
'MsgBox(s, 0, ConvertFromURL(sPfad)
aListe = s
reDim arrayofstrings
s = split(s,",")
oListBox = oDialog1.getControl("ListBox1")
oListBox.additems(s(),0)
End Sub
Vielleicht kannst Du ja damit was anfangen.
Viel Erfolg.
Jürgen
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Fr, 24.08.2007 10:08
von felix
Hallo,
Vielen Dank an euch.
es hat geklappt wunderbar.
Nochmals Danke
Mfg Felix
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Fr, 24.08.2007 13:14
von turtle47
Hallo Zusammen,
ich habe mich hier im Forum intensiv umgeschaut und jede Menge gegoogelt. Für mich bleibt die Frage aber immer noch offen, warum
nicht funktioniert.
Kann mir (uns) einer der Spezialisten das bitte mal erklären? Ich währe sehr dankbar dafür.
Für mich füllt
eine Listbox und
fügt neue Einträge hinzu.
Ich finde, dass das doch ein Unterschied ist.
Schöne Grüße.
Jürgen
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Fr, 24.08.2007 13:24
von Stephan
Kann mir (uns) einer der Spezialisten das bitte mal erklären?
Hallo Jürgen,
ich habe momentan keine Zeit und habe den Thread nur überflogen. Schau doch bitte in den ersten Thread hier im Basic-Forum, dorch habe ich eine Beispieldatei für ein Kombinationsfeld verlinkt, die auch dieses Füllen der Liste umfasst. Vielleicht gibt Dir der dort vorhandene Code eine Antwort.
Gruß
Stephan
Re: Listbox mit ausgelesenen "Daten" füllen
Verfasst: Fr, 24.08.2007 20:45
von turtle47
Hallo Rainer,
vielen Dank für die Bemühungen um die Klärung meiner Frage.
Rainer01 hat geschrieben:Ich bin allerdings nicht sicher, ob StringItemList ein Array zugewiesen werden kann.
In diesem
Thread schrieb Thomas:
Um die Listbox zu Füllen, gibt es die Eigenschaft "stringItemList" womit du einen Array mit den Listeneinträgen (Strings) übergibst. also z.B.
Code: Alles auswählen
dim aListe()
aListe = array("eins", "zwei", "drei")
ListBox.StringItemList = aListe()
Danach hat er geschrieben:
Toxitom hat geschrieben:hmm, du hat recht., der Code war auf "Dialog" gemünzt, meine Erklärung aber auf "Formular". Die Listbox ist ähnlich, im Dialog hast du jedoch mehr Möglichkeiten. Das, was ich sagte, bezog sich auf das Formular
Demnach ist es einen Unterschied zwischen Dialog und Formular.
Die Erklärung dazu habe ich eben hier im
Forum dann gefunden:
Toxitom hat geschrieben:Dialoge und Formulare haben zwar an sich die gleichen (oder beser gesagt ähnliche) Controlelemente, diese werden aber unterschiedlich angesprochen und bearbeitet.
Jedes Kontrollelement hat eine Model-Ebene und eine Viewebene, beide können Eigenschaften und Methoden aufweisen - aber eben unterschiedliche.
Da du es mit Formularen zu tun hast, interessiert eigentlich nur die View-Ebene. Und bei Listboxen gibt es hier nur wenige Eigenschaften oder Methoden, auf jeden Fall keine "addItem()". Die gibt es nur bei Dialogen!
Willst du die Liste einer Listbox im Formular füllen, musst du die Eigenschaft "StringItemList" nutzen, welche einen Array aller Listeneinträge zurückliefert bzw. setzt.
Nochmals Danke für die Hilfe auch an Stephan.
Jürgen