Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

непонятная работа кода :( [D5, WinXP]


dreamse ©   (2008-07-21 09:46:00) 

Приветствую.

Написал функцию которая должна разбирать переданную строку и закидывать данные в TStringList


Function PivotSumList(str,razd:string;StrList:TStringList):boolean;
var
i:integer;
s:string;
begin
for i:=0 to Length(str) -1 do begin
 if str[i] <> razd then s:= s + str[i]
 else begin
  StrList.Add(s);
  s:='';
 end;
end;
if Trim(StrList.text) <> '' then result := true else result := false;
end;


Запускаю так :


procedure TForm1.Button1Click(Sender: TObject);
var
sList:TStringList;
begin
 sList := TStringList.Create;
 try
  if PivotSumList('111%222%444%232323%34gdsg%sgfg%sdg4%sdg','%',sList) then Showmessage(sList.Text);
 finally
  sList.free;
 end;
end;


Возвращает пустой TStringList хотя в функции в проверке :  if Trim(StrList.text)  есть готовый сформированный текст?

Подскажите где допущенна ошибка?


Anatoly Podgoretsky   (2008-07-21 11:00:00) [1]

> dreamse  (21.07.2008 9:46:00)  [0]

Очень много ошибок, как в определение функции, так и в алгоритме.
Переписать все нафиг.


brother   (2008-07-21 09:58:00) [2]

> Все работает, всем спасибо.

без проблемм ;)


dreamse   (2008-07-21 09:52:00) [3]

разобрался.

формировалась вот такая вот строка :

#0'111'#$D#$A'222'#$D#$A'444'#$D#$A'232323'#$D#$A'34gdsg'#$D#$A'sgfg'#$D#$ A'sdg4'#$D#$A

Переделал функцию так:


Function PivotSumList(str,razd:string;StrList:TStringList):boolean;
var
i:integer;
s:string;
begin
StrList.Clear;
for i:=0 to Length(str) -1 do begin
 if str[i] <> razd then s:= s + Trim(str[i])
 else begin
  StrList.Add(s);
  s:='';
 end;
end;
if Trim(StrList.text) <> '' then result := true else result := false;
end;


Все работает, всем спасибо.

p.s пока блин в форум не напишешь не поймешь :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо