2015-11-19 4 views
1

У меня есть AnsiString следующим образом:Delphi: Char значение для новой строки

UID,CardNo,Pin,Password,Group,StartTime,EndTime,Name,SuperAuthorize 
1,0,1,,0,0,0,Johnny Test,0 
2,0,2,,0,0,0,Harry Potter,0 
3,0,3,,0,0,0,Scooby Doo,0 
4,0,4,,0,0,0,Baby Lonney Toons,0 

Как добавить разделитель для новой строки в TStringList именами пользователей, так что я получаю:

Users[1] : 1,0,1,,0,0,0,Johnny Test,0 
Users[2] : 2,0,2,,0,0,0,Harry Potter,0 
Users[3] : 3,0,3,,0,0,0,Scooby Doo,0 

Вот мой код:

ответ

3

Для этого вам не нужно использовать DelimitedText. Вы можете просто назначить напрямую Text и обрабатывать разрывы строк как разделители.

{$APPTYPE CONSOLE} 

uses 
    Classes; 

const 
    Str = 
    'UID,CardNo,Pin,Password,Group,StartTime,EndTime,Name,SuperAuthorize' + sLineBreak + 
    '1,0,1,,0,0,0,Johnny Test,0' + sLineBreak + 
    '2,0,2,,0,0,0,Harry Potter,0' + sLineBreak + 
    '3,0,3,,0,0,0,Scooby Doo,0' + sLineBreak + 
    '4,0,4,,0,0,0,Baby Lonney Toons,0'; 

var 
    i: Integer; 
    StringList: TStringList; 

begin 
    StringList := TStringList.Create; 
    try 
    StringList.Text := Str; 

    Writeln(StringList.Count); 
    for i := 0 to StringList.Count-1 do begin 
     Writeln(StringList[i]); 
    end; 
    finally 
    StringList.Free; 
    end; 

    Readln; 
end. 

Выход:

 
5 
UID,CardNo,Pin,Password,Group,StartTime,EndTime,Name,SuperAuthorize 
1,0,1,,0,0,0,Johnny Test,0 
2,0,2,,0,0,0,Harry Potter,0 
3,0,3,,0,0,0,Scooby Doo,0 
4,0,4,,0,0,0,Baby Lonney Toons,0