Das Einlesen einer Zeile von der SD Karte geht übrigens genauso wie das Einlesen einer Zeile von der seriellen Schnittstelle. Dafür kann man sogar die gleiche Funktion verwenden wenn man alles per Hand macht.
Aber es gibt auch fertige Funktionen dazu.
Das Trennen von Zeichenketten ist einfacher wenn man C Strings (char Arrays) statt Arduino String Objekte verwendet. Dann kann man das bequem mit strtok() erledigen