Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0497: Speichern und Laden von Dateien mittels FSO

 von 

Beschreibung 

Zeigt wie man schnell und einfach mit Hilfe des File-System-Objekts (FSO) Werte in eine Datei schreibt, und diese wieder ausliest.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,99 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'--------- Anfang Projektdatei Daten_speichern.vbp  ---------
' Es muss ein Verweis auf 'Microsoft Scripting Runtime' gesetzt werden.

'------- Anfang Formular "frmMain" alias frmMain.frm  -------
' Steuerelement: Timersteuerelement "tmrTimer"
' Steuerelement: Schaltfläche "cmdLaden"
' Steuerelement: Rahmensteuerelement "fraLaden"
' Steuerelement: Textfeld "txtLaden" auf fraLaden
' Steuerelement: Schaltfläche "cmdSpeichern"
' Steuerelement: Rahmensteuerelement "fraSpeichern"
' Steuerelement: Textfeld "txtDateiname" auf fraSpeichern
' Steuerelement: Beschriftungsfeld "lblPath" auf fraSpeichern
' Steuerelement: Beschriftungsfeld "lblEndung" auf fraSpeichern


'Hinweis
'Unter Verweise muss die Microsoft Scripting Runtime
'aktiviert sein.

'Autor: Sandro Bosshard
'Kontakt: webmaster@link-it.ch

Option Explicit

'Variablen
Dim fso As FileSystemObject
Dim ts As TextStream
Dim str As String

Private Sub Form_Load()
    lblPath.Caption = App.Path & "\"
End Sub



Private Sub cmdSpeichern_Click()
    'Neues Object anlegen
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Methode CreateTextFile des FileSystemObject-Objekts (Gegenstück: OpenTextFile)
    'gibt ein Textstream-Objekt zurück
    Set ts = fso.CreateTextFile(App.Path & "\" & txtDateiname.Text & lblEndung.Caption)
    
    'Verschiedene Methoden des CreateTextFile-Objekts
    ts.WriteLine "WriteLine Schreibt eine Zeile und hängt einen Zeilenumbruch an (vbCrLf)"
    ts.Write "Write Schreibt eine vorgegebene Anzahl Zeichen ohne Zeilenumbruch"
     
    'Schreibt eine gewisse Anzahl (hier 3) an leeren Zeilen (Zeilenumbrüche) in eine Datei
    ts.WriteBlankLines 3
    
    'Datei schliessen (Jede Datei muss geschlossen werden!)
    ts.Close
End Sub


Private Sub cmdLaden_Click()
    'Neues Object anlegen
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Methode OpenTextFile gibt ein Textstream-Objekt zurück
    Set ts = fso.OpenTextFile(App.Path & "\" & txtDateiname.Text & lblEndung.Caption)
    
    str = ts.ReadAll 'Alles lesen
    ts.Close 'Datei schliessen
    
    txtLaden.Text = str
End Sub


Private Sub tmrTimer_Timer()
    Set fso = New FileSystemObject
    
    'Die FileExists-Methode prüft, ob eine Datei vorhanden ist
    Select Case fso.FileExists(App.Path & "\" & txtDateiname.Text & lblEndung.Caption)
        Case True
            cmdLaden.Enabled = True
        Case False
            cmdLaden.Enabled = False
    End Select
    
    'Neben der FileExists-Methode unterstützt das FileSystemObject
    'eine ganze Reihe anderer Objekte, auf die ich hier nicht eingehe
End Sub
'-------- Ende Formular "frmMain" alias frmMain.frm  --------
'---------- Ende Projektdatei Daten_speichern.vbp  ----------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Felix.S am 01.05.2009 um 21:36

Ich finde den Code schlank, leicht durchschaubar und werde ihn auch verwenden! Nur Lob, keine Kritik!

Kommentar von Angelo am 08.05.2003 um 13:07

Hallo in der tip 0497 Speichern und Laden von Dateien mittels FSO gibt es eine methode txtLaden.Text = str möchte ich wissen wo das object angelegt worden ist.

M.f.G. Angelo

Kommentar von T.R. am 12.07.2002 um 18:48

Hallo,
schließe die Datei erst wieder wenn dein Programm beendet wird. Also die Zeile
"ts.Close"
erst bei Beenden.
Das hat den Nachteil, dass bei ienem Absturz des PCs die Datei auch meistens zerstört ist.
Noch was Grundsetzliches: Fragen bitte im Forum posten: schneller, besser, mehr

Kommentar von hazal am 02.07.2002 um 17:05

kann man die Dateien sperren, nach dem man sie geöffnet hat; damit Datei versehentlich nicht von anderen geändert wird, Während diese Datei von diesem Programm benutzt wird.