Hallo Leute,
habe ein etwas eigenartiges Verhalten meiner VB6-Anwendung beobachtet:
In meinem laufenden Projekt sind eine Menge Daten in ein Textfile zu schreiben.
Über eine Funktion …() as Integer
Open … for Output
for
print
next
close
werden die Daten in diese Datei kopiert.
Solange ich das Programm in der Entwicklungsumgebung laufen lasse, funktioniert alles super. Nach der Erzeugung einer EXE ist diese Anwendung sehr unsicher. Die Daten werden aber nach wie vor noch in den Objekten gehalten und lassen sich modifizieren. Nur beim Schreiben auf die Festplatte geschieht NIX.
Habe schon in der Konfiguration des Compilers alle möglichen Optionen ausprobiert, jedoch ohne Erfolg.
Weiss jemand, was hier los ist? Woran habe ich nicht gedacht?
Open „DCDArchiv.txt“ For Output As #1
For Lauf = 1 To 500
DoEvents 'aus Verzweifelung
Print #1, DCD(Lauf).Position & " @ " & DCD(Lauf).VolumeName &
" @@ " & DCD(Lauf).Label & " @@@ " & DCD(Lauf).Inhalt
Next
Close #1
'Nur zur Kontrolle …
'MsgBox DCD(7).Position & " " & DCD(7).VolumeName & " " &
DCD(7).Label & " " & DCD(7).Inhalt
'MsgBox „gespeichert und geschlossen“
DateiSchreiben = 1
End Function
… vermute, daß vielleicht zu viel Text gespeichert wird.
Aber warum klappt es in der IDE ?
Ich sehe erst mal nichts, was mir auffallen würde, das eine Fehler auslösen würde. Unklar ist mir natürlich, was DCD() ist, aber das ist sicher nicht wesentlich.
Das Einzige, was ich so nicht machen würde, ist die fehlende Pfadangabe beim Öffnen und #1. Du bist sicher, daß nichts geschrieben wird? Hast Du Windows mal nach der Datei suchen lassen? In welchen Pfad soll die Datei geschrieben werden? Wenn die Datei in den Pfad geschrieben werden soll, in dem auch die .exe steht, schreibt man …
Dim Pfad As String
Dim ff As Integer
Pfad = App.Path
If Right(Pfad,1) "\" Then
Pfad = Pfad + "\"
End If
ff = FreeFile
Open "Pfad & DCDArchiv.txt" For Output As #ff
...
Versuche es mal so, eventuell findest du die geschriebene Datei einfach nicht, weil Du sie an der falschen Stelle suchst.
ändere mal deinen Code wie Rainer bereits geschrieben hat ab, dann sollte es laufen. Auch solltest du dir die Vorgehensweise merken, denn sonst schleichen sich schnell Fehler ein:wink:
ich kann mir das einfach nicht merken. Ich habe es schon so oft gelesen, aber wenn ich es brauche, kommt es mir nicht in den Sinn. Ich bemühe mich aber, das jetzt endlich mal zu verbessern. Danke für die Erinnerung!
Hallo Alex, hallo Rainer,
Mensch, die Sache ist so peinlich…
Habe Eure Vorschläge dankend angenommen und umgesetzt.
Leider bin ich auf das Simpelste nicht gekommen. (Der Pfad war es!)
Tja, der Wald und die Bäume …