Dateinamen einer Listbox schneller einlesen
Verfasst: 15.09.2004 14:39
Hi,
ich habe ein kleines Problem, bei dem ich eure Lösungsvorschläge gerne mal gehört hätte:
Ich habe ein Programm, das ein Hauptfenster besitzt. In diesem Hauptfenster werden zwei Bearbeitungsschritte dargestellt. Angepsrochen werden diese
Bearbeitungsschritte mit einem "Weiter" bzw. "Zurück" Button:
--
Fenster 1
"Weiter"
(Mit dem "Weiter" Button gelange ich zum Fenster 2)
Fenster 2
"Zurück"
(Mit dem "Zurück" Button gelange ich zum Fenster 1)
--
Im Fenster 1 gibt es ein Stringgadget, in das der Benutzer eine Pfadangabe (C:\Ordner\Test) eingibt. Dieser Ordner enthält zum Beispiel 10 BMP Dateien.
Drückt nun der Benutzer auf dem Button"Weiter" gelangt er zum Fenster 2. Dort gibt es für ihn die Möglichkeit, dem angegebenen Ordner (C:\Ordner\Test) virtuell weitere
Dateien zuzuordnen, ohne das diese wirklich in dieses Verzeichnis kopiert werden. Diese Bearbeitung findet dabei NICHT im hauptfenster, sondern in einem weiteren
Fenster statt, das sich öffnet, sobald der benutzer
den vorhandenen Button "Zusammenstellung bearbeiten" drückt. Dieses weitere geöffnete Fenster hat eine eigen WindowID, nennen wir es
hier einfach Fenster 3.
Im Fenster 3 bekommt nun der benutzer die Möglichkeit, die Zusammenstellung des Ordners (C:\Ordner\Test) zu bearbeiten. Er kann virutell,
neue Dateien hinzufügen und bestehende entfernen. Hier entfernt er beispielsweise von den 10 BMP Dateien 5 Dateien. Somit hat er nur
noch 5 BMP-Dateien. Dafür fügt er 5 TXT Dateien hinzu.
Dieses neue Zusammenstellung speichert der benutzer nun mit einen Klick auf "Speichern". Das Programm merkt sich nun, das bei der
zukünftigen Bearbeitung nicht mehr 10 BMP-Dateien, sondern nur noch 5 BMP Dateien + 5 TXT Dateien bearbeitet werden sollen. Mit dem Klick auf "Speichern"
gelangt er auch wieder in das Fenster 2.
Soweit so gut. Nun habe ich das problem, das beim Einlesen der Inhalte des Ordner (C:\Ordner\Test) oftmals sehr viel Bearbeitungszeit drauf geht, da es nicht selten
mehr als 100 Dateien sind.
Derweil habe ich das ganze sehr ungünstig gelöst:
Der benutzer wählt im Fenster 1 einen ordner aus (C:\Ordner\Test). Sobald er den "Weiter" Button drückt, liest Purebasic das genannte Verzeichnis aus und schreibt alle
Dateinamen sämtlicher enthaltener Dateien in eine Listbox (hier als Listbox 1 bezeichnet). Die Listbox ist versteckt und dem hauptfenster zugeordnet.
Drückt nun der Benutzer im Fenster 2 den Button "Zusammenstellung bearbeiten", liesst Purebasic den Inhalt aus der Listbox 1 aus, öffnet das Fenster 3, das eine weitere
Listbox mit dem namen Listbox 2 enthält und schreibt den Inhalt der Listbox 1 in die Listbox 2.
Wenn nun der benutzer seine Änderungen vorgenommen hat (5 BMP-Dateien + 5 TXT Dateien) und das ganze speichert, schreibt Purebasic den Inhalt von Listbox 2 wieder
in Listbox 1, da ja beim Speichern auch das fenster 3 mit seiner Listbox 2 zerstört wird und somit der Inhalt weg wäre, und schließt das Fenster. Der Benutzer ist nun
wieder im Fenster 2.
Zum Schluss aller Bearbietungschritte liesst Purebasic den Inhalt der Listbox 1 aus und bearbeite alle Dateien nach einen vorgelegten Muster.
Meine Frage ist daher, ob es möglich ist, Dateien schneller in eine Art Listbox (keine Ahnung was es da noch so gibt = Strukturen etc) einzutragen, ohne das mit einer
Standartlistbox zu machen. Mit einer Listbox dauert das einfach zu lange. Daher, was meint ihr wie ihr das machen würdet? Ich hatte schon die idee, den ordner erst
einzulesen, wenn er den Button "Zusammenstellung bearbeiten" drückt, doch brauche ich bei der Endbearbeitung zum Schluss eine Art Listbox, aus dem die Bearbeitungsprocedure lesen kann.
ich habe ein kleines Problem, bei dem ich eure Lösungsvorschläge gerne mal gehört hätte:
Ich habe ein Programm, das ein Hauptfenster besitzt. In diesem Hauptfenster werden zwei Bearbeitungsschritte dargestellt. Angepsrochen werden diese
Bearbeitungsschritte mit einem "Weiter" bzw. "Zurück" Button:
--
Fenster 1
"Weiter"
(Mit dem "Weiter" Button gelange ich zum Fenster 2)
Fenster 2
"Zurück"
(Mit dem "Zurück" Button gelange ich zum Fenster 1)
--
Im Fenster 1 gibt es ein Stringgadget, in das der Benutzer eine Pfadangabe (C:\Ordner\Test) eingibt. Dieser Ordner enthält zum Beispiel 10 BMP Dateien.
Drückt nun der Benutzer auf dem Button"Weiter" gelangt er zum Fenster 2. Dort gibt es für ihn die Möglichkeit, dem angegebenen Ordner (C:\Ordner\Test) virtuell weitere
Dateien zuzuordnen, ohne das diese wirklich in dieses Verzeichnis kopiert werden. Diese Bearbeitung findet dabei NICHT im hauptfenster, sondern in einem weiteren
Fenster statt, das sich öffnet, sobald der benutzer
den vorhandenen Button "Zusammenstellung bearbeiten" drückt. Dieses weitere geöffnete Fenster hat eine eigen WindowID, nennen wir es
hier einfach Fenster 3.
Im Fenster 3 bekommt nun der benutzer die Möglichkeit, die Zusammenstellung des Ordners (C:\Ordner\Test) zu bearbeiten. Er kann virutell,
neue Dateien hinzufügen und bestehende entfernen. Hier entfernt er beispielsweise von den 10 BMP Dateien 5 Dateien. Somit hat er nur
noch 5 BMP-Dateien. Dafür fügt er 5 TXT Dateien hinzu.
Dieses neue Zusammenstellung speichert der benutzer nun mit einen Klick auf "Speichern". Das Programm merkt sich nun, das bei der
zukünftigen Bearbeitung nicht mehr 10 BMP-Dateien, sondern nur noch 5 BMP Dateien + 5 TXT Dateien bearbeitet werden sollen. Mit dem Klick auf "Speichern"
gelangt er auch wieder in das Fenster 2.
Soweit so gut. Nun habe ich das problem, das beim Einlesen der Inhalte des Ordner (C:\Ordner\Test) oftmals sehr viel Bearbeitungszeit drauf geht, da es nicht selten
mehr als 100 Dateien sind.
Derweil habe ich das ganze sehr ungünstig gelöst:
Der benutzer wählt im Fenster 1 einen ordner aus (C:\Ordner\Test). Sobald er den "Weiter" Button drückt, liest Purebasic das genannte Verzeichnis aus und schreibt alle
Dateinamen sämtlicher enthaltener Dateien in eine Listbox (hier als Listbox 1 bezeichnet). Die Listbox ist versteckt und dem hauptfenster zugeordnet.
Drückt nun der Benutzer im Fenster 2 den Button "Zusammenstellung bearbeiten", liesst Purebasic den Inhalt aus der Listbox 1 aus, öffnet das Fenster 3, das eine weitere
Listbox mit dem namen Listbox 2 enthält und schreibt den Inhalt der Listbox 1 in die Listbox 2.
Wenn nun der benutzer seine Änderungen vorgenommen hat (5 BMP-Dateien + 5 TXT Dateien) und das ganze speichert, schreibt Purebasic den Inhalt von Listbox 2 wieder
in Listbox 1, da ja beim Speichern auch das fenster 3 mit seiner Listbox 2 zerstört wird und somit der Inhalt weg wäre, und schließt das Fenster. Der Benutzer ist nun
wieder im Fenster 2.
Zum Schluss aller Bearbietungschritte liesst Purebasic den Inhalt der Listbox 1 aus und bearbeite alle Dateien nach einen vorgelegten Muster.
Meine Frage ist daher, ob es möglich ist, Dateien schneller in eine Art Listbox (keine Ahnung was es da noch so gibt = Strukturen etc) einzutragen, ohne das mit einer
Standartlistbox zu machen. Mit einer Listbox dauert das einfach zu lange. Daher, was meint ihr wie ihr das machen würdet? Ich hatte schon die idee, den ordner erst
einzulesen, wenn er den Button "Zusammenstellung bearbeiten" drückt, doch brauche ich bei der Endbearbeitung zum Schluss eine Art Listbox, aus dem die Bearbeitungsprocedure lesen kann.