Datei I/O fehlerhaft - sehr nervig!

Da Hacker

Erfahrenes Mitglied
Alles klar! Hat sich erledigt!

Das Problem lag unter anderem an meiner fehlenden Änderung an "#Kanal' in die jeweiligen Dateinummern.

Ich sehe, dass sich doch schon einige Leute meinen Thread angeschaut haben und danke diesen.

Ganz wichtig: Ich möchte mich bei Paratron bedanken, der mir die Lösung genannt hat. Danke!

Ciao:
Da' Hacker

Sehr geehrte Mitglieder!

Heute sind meine Nerven wirklich stark strapaziert. Ich hab da so einen kleinen - scheinbar harmlosen - Codeabschnitt für das Laden und Erstellen von Dateien. Dieser will aber ums Verr***en nicht klappen! Er beschäftigt mich schon mehrere Tage.

Ich bin mir sicher, dass ihr mir helfen könnt. Also hier ist der Code:
Code:
Sub AllesErledigen()
KanalInputEinstellungen = FreeFile
KanalOutputEinstellungen = FreeFile
PfadEinstellungen = App.Path & "\Daten" & "\" & "Einstellungen.Adam"
KanalInputReservierungen = FreeFile
KanalOutputReservierungen = FreeFile
PfadReservierungen = App.Path & "\Daten" & "\" & "Einstellungen.Adam"
Call Einstellungen_Laden 'Einstellungen laden
Call Reservierungen_Laden 'Reservierungen laden
Call Serpruefial 'Seriennummer prüfen
End Sub

Sub Einstellungen_Laden()
On Error GoTo Einstellungenfehler
Open PfadEinstellungen For Input As KanalInputEinstellungen
Input #Kanal, Farbe, User, HauptLeft, HauptTop, Serkodiertial, SerUserial
Close KanalInputEinstellungen
Exit Sub
Einstellungenfehler:
Call Einstellungen_Erstellen
End Sub

Sub Einstellungen_Erstellen()
Reset
On Error GoTo Ordnerfehler
MkDir App.Path & "\Daten"  'Ordner erstellen
Ordnerfehler: 'Fehler beim Ordner erstellen - Ordner wahrscheinlich vorhanden
'On Error GoTo Einstellungenfehler
Farbe = vbCyan
User = "Zum Hobelwirt"
HauptLeft = (Screen.Width / 2) - (Haupt.Width / 2)
HauptTop = (Screen.Height / 2) - (Haupt.Height / 2)
Serkodiertial = "wDHtASHwD-ASHKFHtASH-wDHtASHDF-ASHHtHtASH-wDDFKFKF"
SerUserial = "nicht definiert"
Open PfadEinstellungen For Output As KanalOutputEinstellungen
Write #Kanal, Farbe, User, HauptLeft, HauptTop, Serkodiertial, SerUserial
Close KanalOutputEinstellungen
Exit Sub
Einstellungenfehler:
MsgBox "Achtung! Es ist ein Fehler beim Erstellen der Einstellungen aufgetreten. Kontaktieren Sie bitte die Arbok AG unter ArbokAG@Yahoo.de und teilen Sie uns diesen Fehler mit. Danke und Entschuldigung!", vbCritical + vbOKOnly, "Fehler beim Erstellen der Einstellungen!"
End Sub

Sub Reservierungen_Laden()
On Error GoTo Reservierungenfehler
'###Hier fehlt noch die Einlese-Prozedur!
Open PfadReservierungen For Input As KanalInputReservierungen
Input #Kanal, Daten
Close KanalInputReservierungen
Exit Sub
Reservierungenfehler:
Call Reservierungen_Erstellen
End Sub

Sub Reservierungen_Erstellen()
Reset
'On Error GoTo Reservierungenfehler
Open PfadReservierungen For Output As KanalOutputReservierungen
Write #Kanal, "Hello World!"
Close KanalOutputReservierungen
Exit Sub
Reservierungenfehler:
MsgBox "Achtung! Es ist ein Fehler beim Erstellen der Reservierungsdatei aufgetreten! Bitte kontaktieren Sie die Arbok AG unter ArbokAG@Yahoo.de und teilen Sie uns diesen Fehler mit! Danke und Entschuldigung!", vbCritical + vbOKOnly, "Fehler beim Erstellen der Reservierungsdatei!"
End Sub

Sub Serpruefial()
Call dekodieren(Serkodiertial)
If SerUserial = Serdecodedial Then
'Wenn alles richtig ist, dann Hauptformular laden
Call Hauptformular_Laden
Else
'Unten soll die Seriennummer eingegeben werden können
ShpSerialDeckend.Top = ShpSerialDeckend.Top + 270
LblSeriennummer.Visible = True
TxtSeriennummer.Visible = True
CmdCheckSerial.Visible = True
CmdClose.Visible = True
End If
End Sub

Also nun zur Erklärung:
Der Code befindet sich auf einem Splashscreen, der Dateien mit Einstellungen und Reservierungen laden soll. Danach wird die Seriennummer abgefragt.

Zuerst wird die Funktion "AllesErledigen()" aufgerufen, die dafür sorgt, dass alles automatisch abläuft. Alles wäre ja schön und gut, wenn da nicht diese verdammten Bugs wären! Wenn ich mein Programm starte, dann kommen direkt die Meldungen, die in der Fehlerabfrage sind. Ich habe meines Erachtens nach alles richtig gemacht und verstehe einfach nicht, wo das Problem liegt!

Ich würde mich wirklich freuen, wenn sich jemand die Zeit nehmen würde und den Code anschauen/analysieren würde! Noch mehr würde ich mich aber freuen, wenn auch jemand die Lösung nennen würde ;)
Ihr würdet mir weitere Nerven ersparen! :)

//EDIT: Ich hab vergessen euch noch die Variablendeklarationen im Modul zu übergeben:
Code:
'Einstellungsvariablen:
Public Farbe
Public User As String
Public HauptLeft As Integer
Public HauptTop As Integer
Public KanalInputEinstellungen As Integer
Public KanalOutputEinstellungen As Integer
Public PfadEinstellungen As String
Public Serkodiertial As String
Public Serdecodedial As String
Public Serencodedial As String
Public SerUserial As String
'Reservierungen
Public Reservierungen(9999999)
Public KanalInputReservierungen As Integer
Public KanalOutputReservierungen As Integer
Public PfadReservierungen As String
'Testsachen
Public Daten

Danke im Voraus:
Da' Hacker
 
Zuletzt bearbeitet:
Zurück