Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

работа со строкой   Найти похожие ветки 

 
Василий Алибабаевич   (2006-05-21 22:18) [0]

Есть строка такого вида:
Str := "#name#male#klass#shool#blabla#";
Надо из нее получить данные чтобы получилось:
Label1.Caption := "name";
Label1.Caption := "male";
Label1.Caption := "klass";
Label1.Caption := "shool";
Label1.Caption := "blabla";

Пытаюсь при помощи Pos и Delete, но чета неполучается. Как бы это сделать попроще? Помогите плз.


 
Тимофеич   (2006-05-21 22:22) [1]


> Есть строка такого вида:
> Str := "#name#male#klass#shool#blabla#";
> Надо из нее получить данные чтобы получилось:
> Label1.Caption := "name";
> Label1.Caption := "male";
> Label1.Caption := "klass";
> Label1.Caption := "shool";
> Label1.Caption := "blabla";
> Пытаюсь при помощи Pos и Delete, но чета неполучается. Как
> бы это сделать попроще? Помогите плз.

работай с stringlist


 
Desdechado ©   (2006-05-21 22:24) [2]

Pos и Copy - проще некуда, примеры есть в справке
и судя по коду, у тебя на один лэйб все пишется, т.е. успеешь увидеть только мерцание + последнюю надпись


 
Василий Алибабаевич   (2006-05-21 22:36) [3]


> Pos и Copy - проще некуда, примеры есть в справке

Не получается :(
надо читать строку посимвольно пока не встретится # все что до него поместить в Label1.Caption потом читать дальше до следующего # и помещать прочитаное в Label2.Caption и так дальше в остальные Label до конца строки.
А как это записать не пойму уже целый день пытаюсь. Помогите.


 
Desdechado ©   (2006-05-21 22:44) [4]

кому надо посимвольно читать?
а тебе надо справку по Pos прочитать
а то так и останешься в неведении, что Pos сама за тебя найдет позицию #
а Copy - вырежет нужный кусок

или в самом деле TStringList с Delimiter и DelimitedText


 
</code>   (2006-05-21 22:48) [5]

var   Form1: TForm1;   SL:TStringList;

implementation {$R *.DFM}

procedure parse(s:string);
var i,j:integer;
begin

 if pos("#",s)=1 THEN delete(s,1,1);
  while( (pos("#",s)>0) AND (length(s)>0)) do
    begin
       SL.Add(copy(s,1,pos("#",s)-1));
       delete(s,1,pos("#",s));
    end

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 SL:=TStringList.Create;
 parse("#name#male#klass#shool#blabla#");
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 SL.Free;
end;


 
Василий Алибабаевич   (2006-05-21 22:53) [6]


>   (21.05.06 22:48) [5]

Я этого не знал:
while( (pos("#",s)>0) AND (length(s)>0)) do
дальще разберусь.
Спасибо огромное!



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
15-1148024063
McSimm
2006-05-19 11:34
2006.06.11
Пароль уже занят, выберите другой


3-1145275914
Сергей И
2006-04-17 16:11
2006.06.11
запись из БД в EXEL


3-1145287275
Рустем
2006-04-17 19:21
2006.06.11
Неправильно осуществляется поиск в таблице...


2-1148538756
VitV
2006-05-25 10:32
2006.06.11
Разработка компонент.


9-1130503651
Булат Шакиров
2005-10-28 16:47
2006.06.11
Решил попробовать UnDelphiX. При установке на Delphi 7 дает ошибк