Aurel,
Every text file is just one long contiguous string of characters that ends in a unique short sequence of characters (or a single character) that form an operating system-dependent end-of-file (EOF) marker. Under Windows, EOF equals Ctrl+Z (ASCII code decimal 26).
Every file loading function would load this contiguous string of characters into one contiguous memory string of characters with only one substitution: it would change EOF into a zero to mark the end of an ASCIIZ string (Z here stands for "zero-terminated"). Unicode string loading requires more metamorphoses, and I won't discuss it here for simplicity.
In both the file character string and the corresponding memory ASCIIZ string, separate lines of text as we see them in a book are marked with end-of-line (EOL) markers that would be different for different operating systems a particular text file was created in. The EOL marker would be LF ("line feed", ASCII code decimal 10) in Linux, CR ("carriage return" a.k.a. "caret return", ASCII code decimal 13) in Mac OSX, and CRLF (two characters, "carriage return"+"line feed") in Windows. There can be other markers too if the text was created in some rich text editor like, say, MS Word. For example, there may be the so-called "soft line breaks" used for finer line formating; those would usually be denoted with three sequential characters, CRCRLF.
The existing implementations of Windows system services and controls like console windows, message boxes, multiline edit and rich edit controls do not need to split the ASCIIZ text string into any further separate lines of text. They just print the text character by character until they see a CR character that makes them return the caret to the beginning of the line, and a LF character that makes them "feed the line", i.e. scroll the text one line up, and put the caret one line down on a blank line. The caret (a.k.a. "carriage") is the term to denote a point at which the next "printable" character (that is, a character meaningful to the human reader) is about to be printed. In Windows, it is usually denoted with a blinking underline as in the console window, or a "beam-like" (i.e. capital I-shaped) cursor as in edit and rich edit box windows.
If for any reason you would like to split this contiguous ASCIIZ text string into separate text lines, then you will need a function that would scan the text string characters one by one in a loop. Then if the current character is "printable", the function would append it to the current line string in your line array, and if the current character is one of CR and LF characters, the function would stop appending to the current line string, proceed to the next line string in the array, and start appending the incoming "printable" characters to this next line string. The loop runs until the terminating zero character is met in the original ASCIIZ text string.
This is exactly what Charles' LINE SPLITTER function does. There is no other way to implement this functionality. John's SplitA(), my ArrayFromFile(), and all sorts of BASIC line-by-line text file reader functions are built around a similar splitter.