TEIL 8: DATEISTEUERELEMENTE, Aufgaben 43 bis 48
Aufgabe 43
Im nächsten Programm
DATEN sollen die 3 Dateisystem-Steuerelemente, das Dateilistenfeld (
File-ListBox), das Laufwerkslistenfeld (
Drive-ListBox) und das Verzeichnislistenfeld (
Dir-ListBox) (in der Werkzeugleiste neben dem Timer) benutzt werden. Gestalte zunächst mal das Formular:
Noch funktioniert nichts, das lässt sich jedoch mit ganz weningen Befehlen ändern:
Speichere nun Projekt und Formular unter dem Namen
DATEN und noch ein 2. Mal unter dem Namen
DATEN_B ab.
Aufgabe 44
Daten_b soll mit Hilfe eines
Nachrichtenfensters (MessageBox) mögliche Fehlermeldungen ausschalten:
Speichere nun als
Daten_b und auch nochmals Projekt und Formular als
Daten_c ab.
Aufgabe 45
Hier wird nun eine neues Steuerelement, das Kombinationslistenfeld (ComboBox) eingebaut. Es soll dazu dienen, nur Dateien eines bestimmten Typs anzeigen zu lassen.
Füge nun zunächst die ComboBox ins Formular ein. Ihre Anzeige muss beim Laden des Formulars gleich lesbar sein. Darum:
Private Sub Form_Load()
Combo1.AddItem "Alle Dateien *.*"
Combo1.AddItem "EXE-Dateien *.exe", usw. ...
'der Listenindex muss noch initialisiert werden
Combo1.ListIndex = 0
End Sub
In Abhängigkeit vom Listenindex erfolgt dann die Dateianzeige im Dateilistenfeld mit Hilfe einer Select Case-Abfrage:
Private Sub Combo1_Click()
Select Case Combo1.ListIndex
Case 0 'alle Dateien
File1.Pattern = "*.*"
....
End Select
End Sub
Speichere das fertige Projekt und Formular als
daten_c und noch ein 2. Mal als
daten_d ab.
Aufgabe 46
Ergänze nun das Formular wie folgt:
In den beiden oberen Textfeldern soll Dateiname und gewähltes Verzeichnis angezeigt werden. Überlege dir, in welches Unterprogramm der entsprechende Programmcode geschrieben werden soll. Speichere Projekt und Formular unter dem Namen
daten_d und dazu unter
daten_e ab.
Aufgabe 47
Im dritten Textfeld soll beim Programm daten_e noch zusätzlich die Dateigröße angezeigt werden. Dies geschieht mit dem Befehl
text3.text=str(filelen(file1.filename)).
Wenn du nun das Programm testest, wirst du feststellen, dass nach einem Verzeichniswechsel (durch Doppelklick) und Anwahl einer Datei (durch einfaches Markieren) die Fehlermeldung "Datei nicht gefunden" erscheint. Dies liegt daran, dass der Befehl
filelen (engl.:
filelength) nur angewandt werden kann, falls die Datei gefunden wird, d.h. falls der vollständige Pfad mit angegeben wird:
e:\vbasic\daten.frm. Und hier taucht schon das nächste Problem auf:
Mal endet der Pfad mit einem Backslash
\, mal nicht. Definiert man also eine Variable
dateiname, die z.B. die Zeichenkette
e:\vbasic\daten.frm enthalten soll mit Hilfe von
dateiname = File1.Path + File1.filename, dann muss zunächst abgefragt werden, ob
file1.path rechts einen Backslash enthält oder nicht. Darum die ff. etwas umständliche Ausschaltung der Fehlermeldung:
Dein Mini-Dateimanager sollte nun anstandslos funktionieren. Denke ans Speichern und auch ans Erstellen der EXE-Datei.
Bemerkung:
Wie du an den Textabbildungen siehst, ist es sinnvoll, öfter mal einen Kommentar in den Programmcode zu schreiben. Also spare nicht daran und kommentiere deine Programm gut !!!
Aufgabe 48
Noch eine kleine Erweiterung soll zum endgültigen Mini-Dateimanager dazukommen: es sollen nur Dateien mit gewünschtem Dateiattribut angezeigt werden.
Dateien können die ff. Attribute haben:
- read only: Diese Dateien können zwar gelesen werden, jedoch mit einem Editor nicht verändert werden. Beispiel: die Datei msdos.sys, mit deren Hilfe Windows-Einstellungen beim Rechnerstart festgelegt werden.
- hidden: Diese Dateien sind versteckt, nur wenn der Dateimanager von Win so eingestellt ist, dass er alle Dateitypen anzeigt, werden sie sichtbar. Beispiel ist wieder msdos.sys.
- system:Das Systemattribut ist für wichtige Systemdateien, die beim Rechnerstart oder auch während des Betriebes benötigt werden, wieder ist msdos.sys das Beispiel.
- archive:Das Archivattribut wird während eines Sicherungsvorganges (backup) von jeweiligen Sicherungsprogramm gesetzt, so wird es möglich. dass bei einer erneuten Sicherung nur diejenigen Dateien gesichert werden, die sich seit der letzten Sicherung geändert haben.
- normal: kein besonderes Attribut ist gesetzt.
Das Formular soll durch 5 Checkboxen ergänzt werden:
Hierzu gehört der ff. Programmcode: ergänze ihn für alle 5 Checkboxen!
Speichere das fertige Programm und Formular nochmals unter dem Namen
DATEIEN, erstelle auch die zugehörige EXE-Datei.