"Best" way handling txt file?

BlitzMax Forums/BlitzMax Beginners Area/"Best" way handling txt file?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Graphics 800,600,1

Type SString
	Field word_list:TList = New TList
	Field datastring:String
	
	Field x:Int
	Field y:Int
	Field width:Int
	
	Method Print(in_string:String, in_x:Int, in_y:Int, in_width:Int = 600)
		datastring = in_string.trim()
		x = in_x
		y = in_y
		width = in_width
		wrap()
	End Method
	
	Method wrap()
		Local current_word:String
		Local x:Int
		word_list = New TList
		
		For x = 0 To (datastring.length - 1)
			If datastring[x] = 32
				ListAddLast(word_list, current_word)
				current_word = ""
			ElseIf datastring[x] = 13
				ListAddLast(word_list, current_word)
				current_word = ""
				ListAddLast(word_list, "[br]")
			Else
				current_word = current_word + Chr$(datastring[x])
			EndIf
		Next
		ListAddLast(word_list, current_word)
	End Method
	
	Method draw()
		Local current_word:String
		Local current_line:String
		Local current_y:Int = y
		Local lineheight:Int = TextHeight("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG") + (TextHeight("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG") / 4)
		
		For current_word = EachIn word_list
			If current_word = "[br]"
				DrawText(current_line, x, current_y)
				current_y = current_y + lineheight
				current_line = ""
			ElseIf ( TextWidth(current_line) + TextWidth(" ") + TextWidth(current_word) ) > width
				DrawText(current_line, x, current_y)
				current_y = current_y + lineheight
				current_line = current_word
			Else
				If current_line <> ""
					current_line = current_line + " " + current_word
				Else
					current_line = current_word
				EndIf
			EndIf
		Next
		DrawText(current_line, x, current_y)
	End Method
End Type

Global t:SString = New SSTRING
Global LongTextmsg$="Der neueste Auftrag an die drei Detektive hört sich recht harmlos an: sie sollen einen entflogenen Papagei suchen. Doch kaum beginnen sie mit ihren Nachforschungen, da scheinen sich plötzlich noch einige andere Leute sehr für diesen Papagei zu interessieren.Vielleicht deshalb, weil er lateinische Sprüche zitieren kann? Aber bald geht es nicht mehr nur um einen, sondern um sieben Papageien - und alle sieben führen höchst seltsame Reden. Ob da nicht eine geheime Botschaft hintersteckt? Jedenfalls sind auch ein jähzorniger Kunsthändler und ein berüchtigter Meisterdieb hinter den Vögeln her. Die drei ??? müssen sich ganz schön die hellen Köpfe zerbrechen, ehe sie auch diesen abenteuerlichen Fall aufklären und eine wohlverdiente Belohnung einheimsen..."   



   SetColor 255,255,255
   DrawText "Wordwarp example: ",20,20

   T.Print(LongTextmsg$,20,60,300)
   T.Draw()

   Flip
   WaitKey 
End


Here u go!