Another read text filed from SD card thread...

        Serial.println(nameToken);
        
        if(nameToken){

It's generally a good idea to check the pointer BEFORE dereferencing it.

Am I correct to assume that in the text file each line ends like this: \r\n ?? (as in the \r in first? and \n is last so we knwo when to start fresh again?)

I never remember the order, but I think that the \n comes first. It's easy enough to test.

We can 'stop' (so to speak)... and then parse/evaluate the data we have been capturing up until we got to the carriage return...

Exactly.

and we only enter this 'sub-routine' is we have encountered a \n (carriage return).. meaning the end of a line..and is ok to start parsing the data collected..

Yes.

since each time we dumped a character into the record[] character array for holding, we incremented the index variable/counter... this will be over/above (greater than) 0

Yes. The real purpose is to deal with a \r following a \n. We don't want to parse a string that contains only a \r.

There is a flaw in the program...

    if(c == '\n'){ 
should be

    if(c == '\n' || c == '\r') {

huh? So if nameToken true?? (as in if there IS something? not empty/null/blank?) Is that what this check is for?

It is testing that the pointer is not NULL.

*** what does the * (asterik do for these var names?) ***

It declares that the variable is a pointer to whatever the type is. char * is a pointer to char(s). int * is a pointer to int(s). float * is a pointer to float(s).

although Im not clear on what it is you are using for the parameters in the strotok() function?? NULL as the pointer/reference to parse? and what is the delimiter "\0" for? end of line?

The NULL in the second call tells strtok() to keep parsing the same string. If you specify the string again, parsing will start at the beginning again.

The "\0" delimiters is an empty string, so strtok will return a pointer to the rest of the string.