![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброе время суток. Не получается спарсить в строке значения. Сама строка:"tmp.init('timers_prometiumCollector', 1322830122, 1322833722)". нужно соответственно спарсить число 1322830122 и 1322833722.
Кусок кода на странице: Код:
<div id="timers_prometiumCollector"></div> <script language="javascript"> var tmp = new SkylabTimer(); tmp.init('timers_prometiumCollector', 1322830122, 1322833722); tmp = undefined; </script> Пытаюсь спарсить так: Код:
reg.Expression:='tmp.init('+#039+'timers_prometiumCollector'+#039+', (.*?), (.*?))'; if reg.Exec(s3) then begin edit1.Text:=reg.match[1]; edit2.Text:=reg.Match[2]; Последний раз редактировалось babay89, 02.12.2011 в 17:45. |
#2
|
||||
|
||||
![]() Имхо проще всего так:
1) Находим 'tmp.init' через POS. 2) Находим первую запятую после него через POS. 3) Находим вторую. 4) Выдираем текст между ними. 5) Находим третью. 6) Выдираем второе число. Код:
k:=pos('tmp.init',s); if (k=0) then ShowMessage('Error');//error delete(s, 1, k+8);// длина строки tmp.init = 8, ее тоже можно удалить. k:=pos(',',s); if (k=0) then ShowMessage('Error');//error delete(s,1,k) jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 02.12.2011 в 18:22. |
#3
|
|||
|
|||
![]() Цитата:
Блин, опять не работает... Просто ничего не происходит ![]() Последний раз редактировалось babay89, 02.12.2011 в 18:33. |
#4
|
||||
|
||||
![]() Ну так дописать надо. Написано же в конце: "Далее в том же духе". После кода почти в самом начале строки стоит первое число, за запятой - второе.
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
![]() Up. Помогите плиз...
|
#8
|
|||
|
|||
![]() а нельзя ли просто найти первую запятую,взять первое число ,потом PosEx'ом найти вторую запятую от первой. и второе число взять.
а тримом пробелы убрать как вариант. Такой примерно код: ,правда написал всё в каждой строчке чтоб наглядно было,а можно сразу без лишних переменных,буквально в три строчки весь код уместить. Код:
Uses strUtils //подключаем PosEx ... procedure TForm1.Button1Click(Sender: TObject); var s:string; x:integer; begin s:=Edit1.Text;//едит1 содержит строку для парсинга x:=Pos(''',',s)+2;//ищем позицию первой запятой с ковычкой //+2 потому что длинна ковычки и запятой-два символа edit2.text:=Copy(s,x,posex(',',s,x)-x);//копируем с позиции X,длинной до второй запятой// x:=PosEx(',',s,x)+1;//ищем начало ьвторого числа Edit3.Text:=Copy(s,x,Pos(')',s)-x); Edit2.Text:=Trim(Edit2.Text);//убираем пробелы Edit3.Text:=Trim(Edit3.Text); end; Последний раз редактировалось Snake22, 03.12.2011 в 13:49. |