![]() |
|
|
Регистрация | << Правила форума >> | 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. Ищем $, ищем пробел, копируем, ищем $ после найденной позиции, ищем пробел после найденной, копируем, ...
jmp $ ; Happy End! The Cake Is A Lie. |
#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; ![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Цитата:
Ругается на PosEx Undeclared identifier как и где его описать? |
#6
|
||||
|
||||
![]() Добавить в uses, StrUtils.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() Цитата:
|
#8
|
||||
|
||||
![]() Это локальные!!! переменные, объяви их глобально.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо 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; jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 26.03.2012 в 22:46. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
montukXD (26.03.2012)
|
#10
|
|||
|
|||
![]() Используй pos, copy и delete делов то.
Нашел позицию(pos) "$", записал в переменную, удалил(delete) все до нее, скопировал(copy) все до пробела и дальше по кругу. |
Этот пользователь сказал Спасибо m1sclick за это полезное сообщение: | ||
montukXD (26.03.2012)
|
#11
|
||||
|
||||
![]() Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
montukXD (26.03.2012)
|
#12
|
|||
|
|||
![]() Всем спасибо, все ок. оказалось все проще чем я думал
![]() |
#13
|
||||
|
||||
![]() Всё-таки я соврал,
![]() ![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; вот еще вариант ![]() |