Главная страница
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.046 c
15-1147878308
Alien1769
2006-05-17 19:05
2006.06.11
Работа с файлами в одном файле


15-1147857726
Cashmare
2006-05-17 13:22
2006.06.11
Учиться, учиться и учиться!


3-1145362575
Виталий Панасенко
2006-04-18 16:16
2006.06.11
Fast Report 3.x - сумма по выражению


2-1148536009
ttt_111
2006-05-25 09:46
2006.06.11
Работа с DBGrid.


15-1147768208
ArtemESC
2006-05-16 12:30
2006.06.11
Алгоритм сортировки 3 чисел...