Problem: Zeile an Datei anhängen (FSO)

Parasite

Mitglied
Hallo, ich habe diesen Code hier aus diesem Forum und die Namen an mein Projekt angepasst:

Code:
Private Sub cmdAddToList_Click()
'Anhängen
Dim fso, schreibe
Set fso = CreateObject("Scripting.FileSystemObject")
Set schreibe = fso.OpenTextFile(App.Path & "\kontakte.dat", ForAppending)
schreibe.writeline txtHostRemote.Text
schreibe.Close
End Sub

Leider bekomme ich diese Fehlermeldung:
"Ungültiger Prozeduraufruf oder ungültiges Argument"

Was hab ich falsch gemacht?
 
Das liegt daran, daß du die Konstante ForAppending erst deklarieren und belegen musst:

Code:
Private Sub cmdAddToList_Click()
Const ForReading = 1, ForWriting = 2, ForAppending = 3
' kannst du auch im allgemeinen teil auserhalb den SUB's machen
'Anhängen
Dim fso, schreibe
Set fso = CreateObject("Scripting.FileSystemObject")
Set schreibe = fso.OpenTextFile(App.Path & "\kontakte.dat", ForAppending)
schreibe.writeline txtHostRemote.Text
schreibe.Close
End Sub
 
hey..

hast du den Verweis zur Microsoft Scripting Runtime (scrrun.dll) erstellt? den braucht es für das FileSystemObject!

greetings para
 
Ich habe bereits an einer anderen Stelle ein FSO benutzt um die Datei auszulesen.

ForReading und ForWriting funktionieren, bloß ForAppending nicht!:(
 
Original geschrieben von homer
Das liegt daran, daß du die Konstante ForAppending erst deklarieren und belegen musst:

...diese "Konstanten" sind bereits in der klasse scrrun deklariert und müssen daher nicht noch einmal deklariert werden!

lösch also mal die deklaration raus... dann sollte das klappen!

greetings para
 
Yay! Danke!!!!! *bussi*

Und wie mach ich jetzt, dass ich einen Kontakt löschen kann, also dass ich die Zeile der kontakte.dat, die mit dem aktuellen lstKontakte.Text übereinstimmt, lösche und die anderen Zeilen drin bleiben?

(lstKontakte ist eine Listbox)
 
Zuletzt bearbeitet:
am besten liesst du alle zeilen von kontakte.dat in ein array.. beim anschliessenden zurückschreiben der zeilen ins file, vergleichst du die beiden strings.. sind sie gleich, schreibst du diese zeile nicht ins textfile.. allenfalls kannst du ach alle daten des array's zurückschreiben, bei dem die position [(i)] nicht gleich 'selectedIndex' der Listbox ist.. verstanden was ich meine? :)

natürlich kannst du das gleicht auch gleich beim auslesen machen. spielt eigentlich auch keine rolle.. gibt halt ein paar möglichkeiten..

greetings para
 
Zurück