----------------------------------- Recoil Mon Jan 19, 2004 9:23 pm How does turing handle/interpret text files? ----------------------------------- semester's almost over, and ill be starting commtech 11 (java!) in a few weeks, so i thought i'd brush up on my turing skills for practice, and maybe start my java ISU in turing, and port it over later. so im making a platformer, (if you must know, based on that oh-so-holy FPS layer1 which is 40x30. what i want to end up with, is a text file like so: 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000322222230000000000000 0000000000000000000111111110000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000422222222222222222222222222 2222222222222311111111111111111111111111 1111111111111111111111111111111111111111 (as an example of a single screen, with a gradually sloping ground and island about 2/3 to the right) each value represents what that tile will be in-game, 0 being sky, 1 being solid ground, 2 being grass, etc. i want turing to open this file, and line by line distribute each number into the array, based upon its position in the textfile. from there, the game can already handle it. but so far, the only way i've been able to do it is by putting each number on its own line... ie: 0 0 0 0 0 0 0 ...etc, 1200 lines down. the code for this is: procedure loadlevel open : fileNo, fileNa, get for decreasing y : 30..1 %every row, for 30 rows.. for x : 1..40 %do the following for 40 columns get : fileNo, data % gets the data from your file layer1 (x,y) := strint (data) % store the data in layer1, strint is used because the text file is normall read as a string, we want it as integers exit when eof (fileNo) % exit the for loop when there is nothing more to read end for exit when eof (fileNo) % exit the for loop when there is nothing more to read end for close (fileNo) % close the file if checkleveldata = 1 then %for testing purposes put "dump of ",fileNa," : " for y : 1..30 for x : 1..40 put layer1 (x,y).. end for View.Update delay (50) put "" end for delay (2000) end if end loadlevel but i just *can't* get it to read each row and THEN split it up and distribute to the array. its just totally wracking my brain... please help :cry: i've attached a zip of the entire directory... if you want to see how it is supposed to work in the end, open up and run leveleditor, and when it asks for a file, tell it to use "level1.txt"..but open up level1.txt in notepad, and see how it is 1200 lines :/ .... what i want to use in the end is something like level1a.txt ..... thanks for the help :) ----------------------------------- McKenzie Mon Jan 19, 2004 9:36 pm ----------------------------------- well to get one character in Turing use: get:fileNo, data:1 I think from what I see in your code you'll figure it out from here. (The colon forces character-based rather than token based input so it does not skip over whitespace before getting data) - oh data had better be string. (use strint later if you want int) ----------------------------------- Recoil Mon Jan 19, 2004 10:29 pm ----------------------------------- and w00t, it works... awesome... thanks man.. didn't work at first (passed illegal character to strint), then realized it was counting carriage returns, and i changed the column forcount to 41 (insted of 40) and told it to skip over passing it into the array when the count was 41... thanks alot procedure loadlevel open : fileNo, fileNa, get for decreasing y : 30..1 %every row, for 30 rows.. for x : 1..41 %do the following for 40 columns get : fileNo, data :1 % gets the data from your file if x < 41 then layer1 (x,y) := strint (data) % store the data in layer1, strint is used because the text file is normall read as a string, we want it as integers end if exit when eof (fileNo) % exit the for loop when there is nothing more to read end for exit when eof (fileNo) % exit the for loop when there is nothing more to read end for close (fileNo) % close the file if checkleveldata = 1 then put "dump of ",fileNa," : " for y : 1..30 for x : 1..40 put layer1 (x,y).. end for View.Update delay (50) put "" end for delay (2000) end if end loadlevel so just to be clear... when turing *normally* gets anything from say a textfile, it stops at a space right? and skips over all spaces, going to the next "word" ? and doesn't count carriage returns as a word, but does count them as characters... just being 100% sure here...