Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Василий Алибабаевич   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
4-1142502339
balepa
2006-03-16 12:45
2006.06.11
Обмен данными между процессами


2-1148808107
antonn
2006-05-28 13:21
2006.06.11
Курсор и Хинт формы


2-1148216522
Tempora
2006-05-21 17:02
2006.06.11
Есть ли компонент...


2-1148527551
sergey_vl
2006-05-25 07:25
2006.06.11
обращение к бд ACCESS


15-1147860109
ЛшдлуттнСфе
2006-05-17 14:01
2006.06.11
Гаубица. Возможное и невозможное.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский