@jenGs: "if(text.strings > 0) is much more clear, because we tend to read code from left to right." I accept it, it is true. The reason why I used reversed order is the danger of the accidentaly value assign like if(variable = 0). It can be avoid with this if(0 = variable).
Concerning the original example, please notice line_number is 0. And when I create a text with 100 strings that must to have 100 string. The very first string is indexded with 0. Exactly equal with line_number that is also 0. So, there is no reason to occur an out of bounds error. I thought my really short example can be understanding by anyone easily, maybe i was wrong. So, i don't reply to the rest of your post. No offense, just my post isn't about out of bound. Peace smile