Algo que se me ocurre, un poco jalado de los pelos, pero que te permitiría usar la idea original, sería completar el CSV con los delimitadores conforme procesas cada línea
Código:
cadena = Memo->Lines->Strings;
Reemplazas todas las comas en
cadena por la cadena "," y anexas el primero y último ". En delphi sería algo así:
Código Delphi
[-]
cadena := Memo1.Lines[i];
cadena := '"' + StringReplace(cadena, ',', '"', [rfReplaceAll]) + '"';
Así, conviertes
0020,AGUSTIN LOPEZ MENDOZA, MINA 344, 3948588
en
"0020","AGUSTIN LOPEZ MENDOZA"," MINA 344"," 3948588"
con lo que puedes aplicar lo de CommaText sin problemas.
// Saludos