Anzahl der Zeilen eines Streams auslesen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

OldSkool90

Betreff: Anzahl der Zeilen eines Streams auslesen?

BeitragDi, März 02, 2010 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe in meinen Code einen Stream eingelesen und kann ich auch mit readline und drawtext ausgeben, aber ich würde für meine For...Next Schleife gerne die Anzahl der Zeilen einbauen. Also theoretisch so:
BlitzMax: [AUSKLAPPEN]

SeekStream(Stream,0)
For Local a:Int = 0 To ZeilenAnzahl
SetColor 0,75,0
User = ReadLine(Stream)
DrawText User,x,y+(a*30)
Next

Kann mir da jemand helfen? Ich finde dafür keinen Befehl in den helpfiles =/

mpmxyz

BeitragDi, März 02, 2010 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür gibt es auch keine Funktion.
Du kannst aber mit Hilfe dieses Konstruktes eine ganze Datei auslesen:
BlitzMax: [AUSKLAPPEN]
While Not Eof(Stream) 'So lange man nicht am Ende der Datei angekommen ist...
Local Line:String=ReadLine(Stream)
LineCount=LineCount+1
Wend

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

OldSkool90

BeitragDi, März 02, 2010 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
genau die idee kam mir auch und habs bereits ausprobiert xD
funktioniert. also die variable nach "to" erhöhe ich am ende der schleife um 1
EDIT: Hab gerade bemerkt, dass meine Variante nicht optimal ist, mit while...wend läuft es besser. Danke für deine Hilfe Very Happy

Silver_Knee

BeitragMi, März 03, 2010 1:17
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
While Not Eof(Stream) 'So lange man nicht am Ende der Datei angekommen ist...
ReadLine(Stream)
LineCount=LineCount+1
Wend


komm noch ne 1000stel Millisec einsparen und die Sinnlose wertzuweisung raushauen Wink

coolo

BeitragMi, März 03, 2010 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
Local Lines:Int=LoadString(Stream).Split("~n").length-1


Yay und die kurze Variante Very Happy
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat
 

Dreamora

BeitragDo, März 04, 2010 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
*sich am kopf kratz ... seinen kessel anguck and leise murmel* Die spinnen doch die blitzler Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

OldSkool90

BeitragSa, März 06, 2010 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
coolo hat Folgendes geschrieben:
BlitzMax: [AUSKLAPPEN]
Local Lines:Int=LoadString(Stream).Split("~n").length-1


Yay und die kurze Variante Very Happy


Also bei dem Code sehe ich mal gar nicht durch Very Happy

d-bug

BeitragSa, März 06, 2010 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
LoadString lädt den text in einen einzelnen String!
.Split("~n") teilt ihn in ein StringArray auf, indem es ihn an den Zeilenumbrüchen (~n) zerlegt!
.length gibt dann die Länge des StringArray zurück.
 

OldSkool90

BeitragMo, März 08, 2010 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die erklärung dbug Smile
darauf muss man erstmal kommen^^

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group