Конференция "Основная" » непонятная работа кода :( [D5, WinXP]
 
  • dreamse (21.07.08 09:46) [0]
    Приветствую.

    Написал функцию которая должна разбирать переданную строку и закидывать данные в 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)  есть готовый сформированный текст?

    Подскажите где допущенна ошибка?
  • dreamse (21.07.08 09:52) [1]
    разобрался.

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

    #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 пока блин в форум не напишешь не поймешь :)
  • brother © (21.07.08 09:58) [2]
    > Все работает, всем спасибо.

    без проблемм ;)
  • Anatoly Podgoretsky © (21.07.08 11:00) [3]
    > dreamse  (21.07.2008 9:46:00)  [0]

    Очень много ошибок, как в определение функции, так и в алгоритме.
    Переписать все нафиг.
 
Конференция "Основная" » непонятная работа кода :( [D5, WinXP]
Есть новые Нет новых   [134491   +13][b:0][p:0.001]