Главная страница
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.045 c
15-1147965609
Копир
2006-05-18 19:20
2006.06.11
Как Вы относитесь к homophobia?


15-1147670570
Ega23
2006-05-15 09:22
2006.06.11
С Днём рождения! 15 мая


15-1147808951
DillerXX
2006-05-16 23:49
2006.06.11
Помогите с вордом :(


15-1147838981
targentor
2006-05-17 08:09
2006.06.11
Кодировка koi8-r


2-1148674496
ZV
2006-05-27 00:14
2006.06.11
SOUND