datei auslesen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: datei auslesen

BeitragMo, Aug 04, 2008 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
Ich bin gerade dabei von BB3d auf Bmax umzusteigen...
bis her hat eigentlich alles ganz gut funktioniert, nur wollte ich jetzt gerade eine datei per readline auslesen,bekomme aber eine Fehlermeldung...

Es kommt:"Unhandled Exception:Attempt to access field or method of Null object"
und diese Zeile wir hervorgehoben: t.name$=ReadLine(file:TStream)

hier der code:
Code: [AUSKLAPPEN]

Function LoadTeil()

dir=ReadDir("Ausrüstung")
If Not dir Then RuntimeError "Ausrüstungsverzeichnis nicht gefunden"

Repeat

tt$=NextFile(dir)
If tt$<>"." And tt$<>".." And tt$<>"" Then
file:TStream=ReadFile(tt$)

Local t:teil
t=New teil
t.name$=ReadLine(file:TStream)
t.typ=ReadInt(file:TStream)
ListAddLast(TeilList,t)

CloseFile(file:TStream)
EndIf

Until tt$=""

End Function


könnt ihr mir weiterhelfen?

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Smily

BeitragMo, Aug 04, 2008 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Readdir liefert die keine ganzen pfade, sondern nur die Dateinamen.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

mas93

BeitragMo, Aug 04, 2008 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ohh, stimmt. Hab ich vergesse, danke Embarassed

Aber aus irgend einem Grund zeigt er mir beim auslesen der zweiten Zeile "49" an, obwohl eine 1 in der datei steht...

hier der code:
Code: [AUSKLAPPEN]

Function LoadTeil()

dir=ReadDir("Ausrüstung")
If Not dir Then RuntimeError "Ausrüstungsverzeichnis nicht gefunden"

Repeat


tt$=NextFile(dir)
If tt$<>"." And tt$<>".." And tt$<>"" Then
file:TStream=ReadFile("Ausrüstung/"+tt$)
DebugStop

Local t:teil
t=New teil
t.name$=ReadLine(file:TStream)
t.typ=ReadShort(file:TStream)
ListAddLast(TeilList,t)

CloseFile(file:TStream)
EndIf

Until tt$=""

End Function
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Smily

BeitragMo, Aug 04, 2008 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach nur mal ein

Code: [AUSKLAPPEN]

Datei = readfile(blablub)
repeat
   print readline(datei)
until eof(datei)


damit könntest du den Fehler erstmal eingrenzen. Wenn es hier richtig angezeigt wird, hast du beim Programmieren noch irgendwas anderes falsch gemacht
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Willi die Rübe

BeitragMo, Aug 04, 2008 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm könnte es vllt. zufällig damit zusammenhängen, dass 49 zufällig der ASCII Code von 1 ist? Wink
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

mas93

BeitragMo, Aug 04, 2008 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ichs so mach wird 1 ausgegeben...

[EDIT]Und warum gibt des mir nen ASCII code aus?? Wie kann ich das ändern[/EDIT]
[EDIT2]Wenn ich CHR davor setze dann jammer er ja rum, unable to convert int to string oder sowas in der art...[/EDIT2]
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Willi die Rübe

BeitragMo, Aug 04, 2008 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du die 1 per Hand in die Textdatei reingeschrieben oder hast du die Datei mit BM erstellt, also mit WriteShort?
Denn ReadShort nimmt einfach die ersten 2 Byte von der aktuellen Dateiposition und macht daraus eine Zahl. Wenn allerdings nur 1 Byte vorhanden ist, in deinem Fall mit dem Wert 49, dann wird diese Zahl genommen. Und da ein Zeichen in der ASCII Kodierung nur ein Byte beansprucht kommt es eben zur Umwandlung.
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

Smily

BeitragMo, Aug 04, 2008 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Was steht denn in der Datei? Poste den inhalt einfach mal hier.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

mas93

BeitragMo, Aug 04, 2008 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
basis_leicht
1

steht in der Datei, habs von Hand reingeschrieben...

also mit welchem Befehl muss ich die datei auslesen, damit er mir auch ne 1 zurrückgibt?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Xeres

Moderator

BeitragMo, Aug 04, 2008 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Strings als Strings auslesen, bzw. im falle eine einzelnen Zeile diese auslesen und daraus ein Interger machen...
Code: [AUSKLAPPEN]
t.typ=Int(ReadLine(file:TStream))
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

mas93

BeitragMo, Aug 04, 2008 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ahh, ok so macht man des miti bmax, vielen Dank!
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Smily

BeitragMo, Aug 04, 2008 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Genauso hättest du es auch mit einem normalen BB machen müssen Wink
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group