Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизВопрос о TStringList Найти похожие ветки
← →
Sphinxx (2005-01-24 13:19) [0]Вот функция перевода ansi-строки в stringlist, где есть список данных, разделенных символом "^", например "Element1^Element2^Element3".
Почему при формировании листа первый элемент равен "", а не "Element1"?
Не могу понять, что не так...
t:="";
for i:=0 to length(s)-1 do
if s[i]="^" then begin
result.Add(t);
t:="";
end
else
t:=t+s[i];
← →
Skier © (2005-01-24 13:28) [1]
> Почему при формировании листа первый элемент равен "", а
> не "Element1"?
потому что t равен ""
for i:=1 to length(s) do
← →
Плохиш © (2005-01-24 13:37) [2]Хмм,
result.Delimiter := "^";
result.DelimitedText := s;
PS. D7
← →
Sphinxx (2005-01-24 13:41) [3]А, млин... чето не подумал =)
Спасибо!
← →
Ega23 © (2005-01-24 13:41) [4]
uses StrUtils; // Тот, что в RxLib. Если без него, то убрать delims:TCharSet
Function DelimitedStrToList(sIn:string; Strs:Tstrings;delims:TCharSet):integer;
var i:integer;
s0,s1:string;
ch:char;
begin
if sIn="" then Exit;
strs.Clear;
s0:=sIn;
for i:=0 to 255 do //repl ;; =>; ;
begin
ch:=chr(i);
if ch in Delims then s0:=ReplaceStr(S0,ch+ch, ch+" "+ch);
end;
i:=1;
while true do
begin
s1:=ExtractWord(i,s0,delims);
if s1="" then break;
strs.add(s1);
inc(i);
end;
result:=strs.Count;
end;
Function ListToDelimitedStr( Strs:Tstrings;delim:Char=";"):string;
var i:integer;
ss:string;
begin
result:="";
ss:="";
if strs.Count=0 then exit;
for i:=0 to strs.Count-1 do ss:=ss+strs.Strings[i]+delim;
if ss[length(ss)]=delim then delete(ss,length(ss),1);
result:=ss;
end;
З.Ы. Delphi 5.
← →
Юрий Зотов © (2005-01-24 13:48) [5]> Sphinxx (24.01.05 13:19)
Delimiter := "^";
DelimitedText := S;
И все.
← →
Думкин © (2005-01-24 13:54) [6]
s := "ffff^gggg hhhh^jjj";
f := TStringList.Create;
f.Delimiter := "^";
f.DelimitedText := s;
for i := 0 to Pred(f.Count) do writeln(f[i]);
readln
Разбивает и по пробелу также.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c