Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.08.2010, 00:49
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию Проблема с парсером

Проверял программу и наткнулся на следующее, если при парсенге мы знаем что нужное нам слово состоит из 5 символов, то это good, а если меньше или больше как тогда поступить?
Ниже приведён код парсера которым подилился со мной pesi
PHP код:
function PosSrc(ssString): String;
var
    
BEInteger;
begin
    B
:= Pos('SRC="'ss)+5;
    
E:= PosEx('"'ssB);
    
Result:= Copy(ssBE-B);
end
Ответить с цитированием
  #2  
Старый 21.08.2010, 01:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Код:
 B:= Pos('SRC="', ss)+5;
Видимо вас 5 в этой строчке смутило:
Функция Pos возвратит позицию начала искомой строки SRC=", но поскольку вас интересует то что заключено в кавычки после этой строки, то там и добавляется длина SRC=" т.е. 5 символов, а уж какой длины слово между ковычками в коде не оговаривается.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 21.08.2010, 12:33
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

ну всё таки как узнать какой длинны слово в 'SRC="..."'
Ответить с цитированием
  #4  
Старый 21.08.2010, 13:04
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

E-B и будет длина слова.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 21.08.2010, 23:56
bulldog bulldog вне форума
Начинающий
 
Регистрация: 10.05.2010
Сообщения: 160
Репутация: 14
По умолчанию

так E-B у меня тут стоит Result:= Copy(ss, B, E-B); или я что не понял?

Последний раз редактировалось bulldog, 22.08.2010 в 00:10.
Ответить с цитированием
  #6  
Старый 22.08.2010, 00:43
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Функция Copy возвращает строку длиной E-B, а длина строки будет E-B это число
Почуствуйте разницу.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter