Type-Variable nacheinander auslesen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: Type-Variable nacheinander auslesen

BeitragFr, Jul 16, 2010 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe ein Problem und zwar:

ich hab einen Type deklariert:

Code: [AUSKLAPPEN]

Type missionen
   
   Field mission_filename$
   
End Type


So, nun lasse ich einen Ordner auslesen und nach jedem gefundenen File wird ein neuer mission_filename$ eingetragen.

Und nun das Problem:

Danach versuche ich die gefundenen files in eine Datei zu schreiben, was aber nicht funktioniert, ich habe schon folgende schleife geschrieben:

Code: [AUSKLAPPEN]


Global write_mission_file = WriteFile("mission_data.txt")

While mission <> Null
   
   WriteLine write_mission_file, "" + mission\mission_filename + ""
   
   mission = After mission
   
Wend



aber die Datei ist am ende okb groß und es steht folglich nix drin.

thx schonmal im vorraus
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Thunder

BeitragFr, Jul 16, 2010 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an, bei der Variante müsstest zu zuerst mission.missionen=First missionen machen.
Edit: Steht in deinem Code eigentlich eine anständige Deklaration der Variable mission?
Für sowas gibt es aber For-Each-Schleifen:
Code: [AUSKLAPPEN]
For mission=Each missionen
    WriteLine write_mission_file, mission\mission_filename
Next


mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am Fr, Jul 16, 2010 17:31, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragFr, Jul 16, 2010 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
- Warum nicht For...Each?
- CloseFile nicht vergessen!
Code: [AUSKLAPPEN]
Global write_mission_file = WriteFile("mission_data.txt")

Local m.missionen
For m = Each missionen
   WriteLine write_mission_file, m\mission_filename
Next

CloseFile(write_mission_file)
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)
 

CO2

ehemals "SirMO"

BeitragFr, Jul 16, 2010 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ja mission ist deklariert.

den codeteil mit mission.missionen = first missionen hab ich eben vergessen sry.

Jetzt hat sich allerdings eine änderung aufgetan:

es wird eine datei erstellt mit 6 Zeilen, leider steht in keiner davon ein buchstabe...
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragFr, Jul 16, 2010 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal vor dem Speichern den Inhalt der Missionen zu verifizieren:
Code: [AUSKLAPPEN]
For m = Each missionen
   DebugLog(m\mission_filename )
Next
Stop
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)
 

CO2

ehemals "SirMO"

BeitragFr, Jul 16, 2010 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
da tut sich gar nix...
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragFr, Jul 16, 2010 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Werde mal konkreter als "funktioniert nicht".
- Debug-Modus nicht aktiviert? "Programm->Debug Enabled?"
- Es wird nichts im Debuglog ausgegeben?
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)

Thunder

BeitragFr, Jul 16, 2010 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr aussagekräftig.
Wenn du die Variablen nicht initialisierst, kannst du nicht erwarten, dass was drinnen steht. (keine Initialisierung im obigen Code)
Code und eine gute Beschreibung des Problems wären ganz gut oder du suchst nach dem Fehler.

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

CO2

ehemals "SirMO"

BeitragFr, Jul 16, 2010 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ok, dann schick ich mal den ganzen Code:

Code: [AUSKLAPPEN]

Graphics 400, 300, 32, 2

Global read_dir = ReadDir("mission")
Global gefundene_files

Type missionen
   
   Field mission_filename$
   
End Type

Repeat
   
   Local filename$ = NextFile(read_dir)
   gefundene_files = gefundene_files + 1
   
Until filename$ = ""

Local new_gefundene_files = gefundene_files - 3

Global start

Global mission.missionen

For start = 0 To new_gefundene_files
   
   mission.missionen = New missionen
   
   mission\mission_filename$="" + filename$ + ""
   
Next

mission.missionen = First missionen

Print "Gefundene Missionen: " + new_gefundene_files + "/" + gefundene_files + ""
Print "("

While mission <> Null
   
   Print "" + mission\mission_filename$ + ""
   
   mission = After mission
   
Wend

Print ")"

Global write_mission_file = WriteFile("mission_data.txt")

For mission=Each missionen
   
   WriteLine write_mission_file, mission\mission_filename$
   
Next

CloseFile(write_mission_file)

Print "Bitte eine Taste drücken um zu beenden"

WaitKey()
End


So, externe dateien:

Ein Ordner Namens "mission"

in ihm 4 dateien,

"mission1.txt"
"mission2.txt"
"mission3.txt"
"mission4.txt"

folgender fehler:

in der erstellten Datei sind wohl 6 Zeilen (1kb groß), aber es steht nix drin.

wo aktiviert man das Debuglog bei IDEal?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragFr, Jul 16, 2010 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Verbesserungsvorschlag:
Code: [AUSKLAPPEN]
Graphics 400, 300, 32, 2

Global read_dir = ReadDir("mission")
Global gefundene_files
Global mission.missionen

Type missionen
   
   Field mission_filename$
   
End Type

Repeat
   Local filename$ = NextFile(read_dir)
   gefundene_files = gefundene_files + 1
   If Lower(Right(filename$,4))=".txt" Then
      mission.missionen = New missionen
      mission\mission_filename$ = filename$
   EndIf
Until filename$ = ""

CloseDir(read_dir) ;* Nicht vergessen zu schließen

Print "Gefundene Missionen: " + gefundene_files
Print "("

For mission=Each missionen
      
   Print mission\mission_filename$
      
Next

Print ")"

Global write_mission_file = WriteFile("mission_data.txt")

For mission=Each missionen
   
   WriteLine write_mission_file, mission\mission_filename$
   
Next

CloseFile(write_mission_file)

Print "Bitte eine Taste drücken um zu beenden"

WaitKey()
End


In IDEal drückt man F9 für Debug Compile (Käfer/Blitz Symbol).

Nachtrag:
Der Fehler war ja ganz offensichtlich: filename$ enthält nach der Schleife den Leeren String="" den du X mal als Missionsdaten versuchst zu speichern...
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)
  • Zuletzt bearbeitet von Xeres am Fr, Jul 16, 2010 18:48, insgesamt einmal bearbeitet
 

CO2

ehemals "SirMO"

BeitragFr, Jul 16, 2010 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, jetzt funktioniert es thx an alle Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group