Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2011, 21:04   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
Печаль распарсить сторку

не могу распарсить правельно строку
PHP код:
<meta http-equiv="refresh" content="20; url="
пробывал так
Код:
var
ni, h:integer;
O:=string;
...
ni:=pos('refresh" content="',O);
if ni<>0 then begin
O:=copy(O,ni+18,length(O)-ni-18);
O:=copy(O,1,pos(';',O)-1);
showmessage(h);
    h:= O;
...
но h выходит пустым

Последний раз редактировалось bulldog5293; 18.02.2011 в 21:55.
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 21:22   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

издеваешся?
Код:
var
ni, h:-integer;
O:=string;
...
ni:=pos('refresh" content="',O);
if ni<>0 then begin
O:=copy(O,ni+18,length(O)-ni-18);
O:=copy(O,1,pos(';',O)-1);
где здесь упоминаеца h чтоб она не была пустои???
или ты думаеш если в var написал ее(с ошибкои ni, h:-integer; ), она примет желаемое тобои значение?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 18.02.2011, 21:57   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

ну ошибся в минусе пока код переносил, ситлуация не изменилась
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 22:00   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

ну ты даеш)
что б h не было равно 0, надо зделать где нибудь h := 5

P.S.или хотябы h := не нулю
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 18.02.2011, 22:35   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

подскажи как правельне распарсить
Код:
<meta http-equiv="refresh" content="20; url=">
просто вместо 20 и другое число стоять может, а мой вариант не в какую работать не хочет
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 22:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var i,ref_time:integer;
     s:string;
begin
 s:='<meta http-equiv="refresh" content="20; url=">';
 i:=pos('http-equiv',s);
 i:=posex('content=',s,i);
 i:=i+length('content=')+1;
 ref_time:=StrToInt(Copy(s,i,posex(';',s,i)-i));
примерно так.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.02.2011, 23:01   #7
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Код:
 ref_time:=StrToInt(Copy(s,i,posex(';',s,i)-i));
ругается
E2010 Incompatible types: 'string' and 'Integer'
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 23:08   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

теперь внимательно пересмотри код, у меня ref_time имеет тип integer.
прежде чем копипастить, стоит разобратся хоть немного.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.02.2011, 23:11   #9
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

да я знаю, что ref_time имеет тип integer, я просто не как не могу привыкнуть из одной переменной в другую переносить, как в этом случае
Сделал так
Код:
var s,a,ref_time:string;
i:integer;
begin
 s:='<meta http-equiv="refresh" content="20; url=">';
 i:=pos('content="',s);
 i:=posex(';',s,i);
 i:=i+length(';')-2;
		begin
			a := s[i];
			showmessage(a);
но результат только одно число и в данном примере это 0

Последний раз редактировалось bulldog5293; 18.02.2011 в 23:46.
bulldog5293 вне форума Ответить с цитированием
Старый 18.02.2011, 23:57   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Вопрос снят, всем спс

Последний раз редактировалось bulldog5293; 19.02.2011 в 00:02.
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распарсить строку bulldog5293 Работа с сетью в Delphi 7 18.12.2010 19:25
Как правильно считать сторку из поля edit? reynevan Win Api 7 16.07.2010 02:21
Распарсить прайс Sanyo Microsoft Office Excel 7 13.11.2009 17:01
Помогите распарсить строку Alexander1991 Помощь студентам 1 08.03.2009 22:33
Распарсить HTML Табурет Общие вопросы C/C++ 11 02.03.2008 19:26