![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток.
Подскажите новичку. В ini файле есть строка: VXZC$80699453440 VCZX2$27412221952 ZXCV3$53287231488 Что нужно сделать чтоб часть строки выводилась в label от $ до пробела, затем от 2$ до второго " " и т.д. цифр между символами может быть разное количество. Кстати после символов будут только цифры, думаю это как то меняет дело Чтение из ini файла и вывод я примерно понимаю как сделать, но если что то посоветуете буду признателен. Следующий способ не подходит т.к. неизвестно кол-во цифр: Код:
procedure TForm2.Button5Click(Sender: TObject);
var s,word: string;
begin
s:=edit1.text;
word:=Copy(s,1,Pos('2$',s)-2);
ShowMessage('Свободно: '+word);
end; |
|
#2
|
||||
|
||||
|
PosEx. Ищем $, ищем пробел, копируем, ищем $ после найденной позиции, ищем пробел после найденной, копируем, ...
|
|
#3
|
|||
|
|||
|
Цитата:
![]() |
|
#4
|
||||
|
||||
|
Код:
procedure TForm2.Button5Click(Sender: TObject); var St, St1 : String; I, J : Integer; begin I := PosEx(Edit1.Text, '2$', 0); J := PosEx(Edit1.Text, ' ', 0); St := Copy(Edit1.Text, I, J - 1); I := PosEx(Edit1.Text, '2$', J); J := PosEx(Edit1.Text, ' ', I); St1 := Copy(Edit1.Text, I, J - 1); end; ![]() |
|
#5
|
|||
|
|||
|
Цитата:
Ругается на PosEx Undeclared identifier как и где его описать? |
|
#6
|
||||
|
||||
|
Добавить в uses, StrUtils.
|
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
||||
|
||||
|
Это локальные!!! переменные, объяви их глобально.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
montukXD (26.03.2012)
| ||
|
#9
|
||||
|
||||
|
Код:
procedure TForm2.Button5Click(Sender: TObject);
var
St, St1 : String;
I, J : Integer;
begin
I := PosEx('$', Edit1.Text, 0);
J := PosEx(' ', Edit1.Text, 0);
St := Copy(Edit1.Text, I, J - I);
I := PosEx('$', Edit1.Text, J);
J := PosEx(' ', Edit1.Text, I);
St1 := Copy(Edit1.Text, I, J - I);
end;Последний раз редактировалось Bargest, 26.03.2012 в 22:46. |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
montukXD (26.03.2012)
| ||
|
#10
|
|||
|
|||
|
Используй pos, copy и delete делов то.
Нашел позицию(pos) "$", записал в переменную, удалил(delete) все до нее, скопировал(copy) все до пробела и дальше по кругу. |
| Этот пользователь сказал Спасибо m1sclick за это полезное сообщение: | ||
montukXD (26.03.2012)
| ||
|
#11
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
montukXD (26.03.2012)
| ||
|
#12
|
|||
|
|||
|
Всем спасибо, все ок. оказалось все проще чем я думал
![]() |
|
#13
|
||||
|
||||
|
Всё-таки я соврал,
а ведь предупреждал ведь. ![]() |
|
#14
|
|||
|
|||
|
Цитата:
![]() |
|
#15
|
|||
|
|||
|
procedure TForm2.Button5Click(Sender: TObject);
var KP, KS : Integer; S, Word : string; begin s := edit1.text; KP := Pos('$', S); KS := Pos(' ', S); while KP > 0 do begin Word := Copy(S, KP+1, KS-KP-1); ShowMessage(Word); Inc(KP); KP := PosEx('$', S, KP); Inc(KS); KS := PosEx(' ', S, KS); if KS = 0 then KS := Length(S)+1; end; end; вот еще вариант ![]() |