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

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

работа со строкой [D5, XP]


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

Есть строка такого вида:
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:53:00) [1]


>   (21.05.06 22:48) [5]

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


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

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;


Desdechado   (2006-05-21 22:44:00) [3]

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

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


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


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

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


Desdechado   (2006-05-21 22:24:00) [5]

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


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


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

работай с stringlist


Наверх

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