Type,For/next/each problem.
Blitz3D Forums/Blitz3D Beginners Area/Type,For/next/each problem.
| ||
| Hello once again. I am having a problem understanding Types with For next and each. I am trying to gather some information both integer and string and want to save it to a file for printing at a later date. The code below is what I do not understand so I know i am doing it wrong just do not know how to fix it.
cd# = .075
Type stud
Field v ;Student number
Field w$ ;Student Name
Field x$ ;Student Home Room
Field y ;Days in DI
Field z ;Credits
End Type
stu%=Input("How many students enrolled in you class during credit check " + cc + "? ")
For stutemp = 1 To stu
cur.stud = New stud
cur\v = stutemp
cur\w = Input("Students name: ")
cur\x = Input("Students home room: ")
cur\y = Input("Days of Directed Instruction: ")
; z is not used yet but will be cur\y * cd
; cur\z = cur\y *cd
Next
For cur.stud = Each stud
cur\v = cur\v + 1
Next
; To check and see what if anything is going on.
Print cur\v + " " + cur\w + " " + cur\x + " " +cur\y + " " ;+cur\z + " "
Once I get to the print section my debug all sets back to null and I get an "Object does not exist" error and it is all over. If anyone can shed a little light on how this really works it would be great. The over all goal is to get this information do the math and save it to a comma separated file. I think I can use maybe the Print Str$() command if i can figure out the types and for / each command and I can figure out how to put the Print Str$() command into use. Thank you all again. You have been great help. |
| ||
It's the same basic idea as this:For n = 1 To 7 Step 2 Print " n = " + n Next Print " After loop, n = " + n WaitKey Notice the "end" value would never be reached, so checking for n=7 would fail. The loop actually checks to see if n has gone past the end, and doesn't loop back to the start in that case. That would be unusual with a Type list, but could happen if you were doing something tricky. In any case For-Each works like For-Next. It continues until the loop variable runs off the end. If you want to examine the last element then use the Last command. |
| ||
| Here pdf. Types. https://dl.dropboxusercontent.com/u/39767349/AOBPwB3D.pdf |
| ||
In your code "cur" is only defined local inside the FOR/NEXT loop. To print it you have to move the PRINT command also inside a loop:For cur.stud = Each stud cur\v = cur\v + 1 Print cur\v + " " + cur\w + "... " Next For cur.stud = Each stud cur\v = cur\v + 1 Next For cur.stud = Each stud Print cur\v + " " + cur\w + "... " Next or like Floyd sayd: For cur.stud = Each stud cur\v = cur\v + 1 Next cur.stud = Last stud Print cur\v + " " + cur\w + "... " |