Руководство пользователя ScriptEdit — Filmotech
Основные принципы
Интерфейс редактора
Главное окно
Интерфейс состоит из панели инструментов со значками для доступа к функциям редактора, панели настроек слева, главного окна ввода справа и состояния. полоса в нижней части окна.
Теперь мы подробно рассмотрим различные элементы интерфейса.
Панель инструментов
Значок | Использование |
---|---|
Откройте окно поиска в Интернете, чтобы протестировать скрипт. | |
Скомпилируйте 4 части скрипта и отобразите ошибки. | |
Создайте новый скрипт. | |
Открыть скрипт. | |
Сохраните текущий скрипт. | |
Сохраните текущий скрипт под новым именем. | |
Поиск текста в текущем редактируемом тексте. | |
Показать справку. | |
Пользовательские настройки. | |
Выйти из редактора сценариев. |
Информация о сценарии
Информация на веб -сайте
Входные справки
Поле редактирования
Статус
Текстовый поиск
Внедрение скрещивания
обменных обменов и скрещивания
.0008
Анализ полученных HTML-страниц
При получении HTML-страницы она разрезается на строки, каждая из которых представляет собой отдельный HTML-тег. Итак, для следующей страницы:
< html > < головка > < title >Название страницы title > головка > < корпус > < h2 >Основной заголовок h2 > < p >Вот < сильный >жирный сильный > слово. p > кузов > html >
Filmotech ScriptEdit будет декодировать страницу следующим образом
< html > < головка > < название > Заголовок страницы заголовок >головка > < корпус > < ч2 > Основное название h2 > < р > Вот < сильный > смелый сильный > слово. стр > кузов > html >
Функция fmt_ValeurLigne извлекает каждую строку полученной страницы. Таким образом сократить, анализ страницы будет проще.
При запуске скрипта ScriptEdit отображает окно, содержащее проанализированный HTML . Используйте это окно для поиска текста на странице или номера строки, чтобы упростить разработку скрипта.
Последовательность действий
Пример сценария
В качестве примера возьмем случай поиска Filmstarts.
Запрос заголовка
dim chaine as string chaine = "http://www.filmstarts.de/suche/1/?q=" + ReplaceAll(fmt_MotsCles," ","+") fmt_EncodagePage ("UTF8") fmt_RequeteListe("GET", chaine)
Анализ заголовков
dim i,j,k,l,m,n как целое число dim strSearch как строка dim strRef, strFilm как строка dim startLink как логическое значение для i=0 до fmt_NombreLignes - 1 strSearch = "href='/критика/" j = instr(fmt_ValeurLigne(i), strSearch) если j<>0, то k = instr(fmt_ValeurLigne(i+1), "img src=") l = instr(fmt_ValeurLigne(i+1), "alt=") если k<>0 и l<>0, то strRef = NthField( NthField( fmt_ValeurLigne(i), "'", 2), "/", 3) strRef = Left (strRef, len (strRef) -5) стрФильм = "" СтартСсылка = Ложь для m = i+2 до fmt_NombreLignes - 1 если не startLink и instr(fmt_ValeurLigne(m), "a href=") <>0, то СтартСсылка = Истина конец, если если startLink и instr(fmt_ValeurLigne(m), "<") = 0, то strFilm = strFilm + fmt_ValeurLigne( m) конец, если если startLink и instr(fmt_ValeurLigne(m), "" ) <> 0, то Выход конец, если следующий fmt_MemoriseTitre (strRef, strFilm) конец, если конец, если следующие
Подробный запрос
диммер как строка chaine = "http://www. filmstarts.de/kritiken/" + fmt_IdentifiantDetail + ".html" fmt_RequeteDetail("GET", chaine)
Анализ деталей
dim chaine, chaine2, chaine3, текст в виде строки dim i, j, k, l, индекс, дебют_1, конечный_1 как целое число dim minRun как двойной индекс = 0 «Название/год для i=0 до fmt_NombreLignes - 1 цепочка = "<название>" j = instr(fmt_ValeurLigne(i), chaine) если j<>0, то text = left(fmt_ValeurLigne(i+1), len(fmt_ValeurLigne(i+1)) - 28) текст = обрезать (текст) fmt_MemoriseValeur ("TitreVF", текст) text = mid(fmt_ValeurLigne(i+1), len(fmt_ValeurLigne(i+1))- 20, 4) текст = обрезать (текст) fmt_MemoriseValeur («Энни», текст) индекс = я Выход конец, если следующий 'Крышка текст = "" для i=indice для fmt_NombreLignes - 1 цепочка = " 0, то текст = NthField(fmt_ValeurLigne(i), "'", 2) fmt_RequeteImage ("ПОЛУЧИТЬ", текст) индекс = я Выход конец, если следующий 'Продолжительность текст = "" для i=indice для fmt_NombreLignes - 1 цепочка = "itemrop=""длительность" j = instr(fmt_ValeurLigne(i), chaine) если j<>0, то текст = NthField(fmt_ValeurLigne(i), """", 4) текст = Заменить(текст,"PT","") текст = Заменить(текст,"М","") минРун = 0 если instr(text, "H") <> 0, то minRun = 60 * Val(NthField(текст, "H", 1)) minRun = minRun + Val(NthField(текст, "H", 2)) еще minRun = minRun + Val(текст) конец, если индекс = я Выход конец, если следующий fmt_MemoriseValeur("Duree", Str(minRun))
Некоторое обсуждение анализа
Функции fmt_
fmt_AfficheMessage
Отображает сообщение в окне предупреждения.
Syntax
fmt_AfficheMessage ( msg )
Variable | Type | Description |
---|---|---|
msg | String | Message to display |
Example
fmt_AfficheMessage("Сообщение об ошибке")
fmt_DebugMsg
Отображает сообщение в окне отладки при выполнении скрипта.
Syntax
fmt_DebugMsg ( msg , level )
Variable | Type | Description |
---|---|---|
msg | String | Message to display |
уровень | Integer | Level of the message (optional) |
The levels
Level | Comment | |
---|---|---|
0 | ( No icon ) | Простое сообщение (по умолчанию) |
1 | OK | |
2 | Ошибка | |
3 | ||
3 | ||
3 | ||
3 | ||
4 | Предупреждение |
Пример
Уровень сообщения об ошибке, " 0 уровень fmt_DebugMsg " fmt_DebugMsg "Сообщение об ошибке уровня 1", 1 fmt_DebugMsg "Сообщение об ошибке уровня 2", 2 fmt_DebugMsg "Сообщение об ошибке уровня 3", 3 fmt_DebugMsg "Сообщение об ошибке уровня 4" , 4
Отображение в окне отладки:
fmt_DernierTitre
Возвращает последний заголовок, сохраненный в списке. Может использоваться для добавления дополнительной информации.
Syntax
result = fmt_DernierTitre
Variable | Type | Description |
---|---|---|
result | String | The last title stored |
Example
тусклый last_title как строка last_title = fmt_DernierTitre
fmt_EncodagePage
Устанавливает кодировку HTML-страницы, возвращаемой сайтом. В настоящее время возможные параметры: ISOLATIN1 и UTF8 .
Syntax
fmt_EncodagePage ( encoding )
Variable | Type | Description |
---|---|---|
encoding | String | The encoding format, ISOLATIN1 or UTF8 |
Пример
fmt_EncodagePage("UTF8")
fmt_EncodeURL
Кодировать компоненты URL строки, переданной в качестве параметра.
Syntax
result = fmt_EncodeURL ( url_to_encode )
Variable | Type | Description |
---|---|---|
String | Encoded string | |
url_to_encode | Строка | Кодируемая строка |
Пример
Dim encoded_string как строка encoded_string = fmt_EncodeURL("www.Bob&Ray.com") // возвращает "www.bob%26ray.com"
fmt_HeaderDetail
Заполните поле заголовка HTTP перед отправкой подробного запроса.
Syntax
fmt_HeaderDetail ( field , value )
Variable | Type | Description |
---|---|---|
Field | Строка | Название поля HTTP Header |
Значение | Строка | Значение поля |
пример 0-й . » ) Заполните поле заголовка HTTP перед отправкой запроса списка. Синтаксис fmt_HeaderListe ( поле , значение ) Пример Возвращает идентификатор фильма, выбранного пользователем в списке. Syntax result = fmt_IdentifiantDetail Example Привет, ребята, Я все еще хочу, чтобы кто-нибудь помог мне с этим. Голосовать за
0 Теперь вы можете иметь проверки в макросе, чтобы проверить определенные вещи перед полным запуском макроса и остановить макрос, если это необходимо. Например, вы можете указать макросу проверить и посмотреть, есть ли в них данные во всех 9 текстовых полях, и если нет, выдать предупреждение или даже остановить скрипт, если это необходимо. Голосовать за
0 Кросс-пост http://www.vbaexpress.com/forum/showthread.php?63369-Userform-help&p=382843 Хотя мы не запрещаем кросс-постинг на этом сайте, мы просим вас указать, что вы сделать это и предоставить ссылки в каждом из потоков, указывающие на другой поток (см. здесь правило 13 вместе с пояснением: Правил форума ). Голосовать за
0 Мой ответ таков: Когда вы запускаете макрос, и он выполняет несколько задач, позже вы понимаете, что допустили ошибку при вводе значений в макрос. Практически невозможно вернуться назад и отменить то, что сделал макрос. Теперь вы можете иметь проверки в макросе, чтобы проверить определенные вещи перед полным запуском макроса и остановить макрос, если это необходимо. Например, вы можете указать макросу проверить и посмотреть, есть ли в них данные во всех 9 текстовых полях, и если нет, выдать предупреждение или даже остановить скрипт, если это необходимо. Нажмите, чтобы развернуть… Спасибо за идею! Попробую сделать. Пух сказал: Кросс размещен http://www.vbaexpress.com/forum/showthread.php?63369-Userform-help&p=382843 Хотя мы не запрещаем кросс-постинг на этом сайте, мы просим вас указать, что вы делаете это, и предоставить ссылки в каждой из тем, указывающих на другую ветку (см. правило 13 здесь). с пояснением: Правила форума ). Нажмите, чтобы развернуть… Извините за это, другой форум кажется мертвым Голосовать за
0 Мой ответ таков: Когда вы запускаете макрос, и он выполняет несколько задач, позже вы понимаете, что допустили ошибку при вводе значений в макрос. Практически невозможно вернуться назад и отменить то, что сделал макрос. Теперь вы можете иметь проверки в макросе, чтобы проверить определенные вещи перед полным запуском макроса и остановить макрос, если это необходимо. Например, вы можете указать макросу проверить и посмотреть, есть ли в них данные во всех 9 текстовых полях, и если нет, выдать предупреждение или даже остановить скрипт, если это необходимо. Нажмите, чтобы развернуть… Ваше решение сработало, сначала я проверяю, есть ли дубликаты, а затем они удаляются. Код: Variable Type Description field String The name of the HTTP header field value String The value of the field fmt_HeaderList( "Accept-Language", "en" )
fmt_IdentifiantDetail
Variable Type Description result String ID of the film идентификатор dim в виде строки
ID = "http://www. filmstarts.de/kritiken/" + fmt_IdentifiantDetail + ".html"
fmt_MemoriseDernierTitre
fmt_MemoriseTitre
fmt_MemoriseValeur
fmt_MotsCles
fmt_NombreLignes
fmt_RequeteDetail
fmt_RequeteImage
fmt_RequeteListe
fmt_RequetePageSuivanteListe
fmt_Valeur
fmt_ValeurLigne
Userform help | Доска сообщений MrExcel
Слинас
Новый член
Может быть, мне нужно уточнить мою проблему подробнее? Мой ответ
Известный член
Лучше всего закрыть книгу, не сохранять изменения и начать заново. Разве что можно вручную исправить ошибку. Невозможно указать макросу отменить все действия, которые он выполнил.
По крайней мере, насколько мне известно. Пух
MrExcel MVP, модератор
Таким образом, другие участники могут видеть, что уже сделано в отношении вопроса, и не тратить время на работу над вопросом, на который уже может быть дан ответ. Слинас
Новый член
Лучше всего закрыть книгу, не сохранять изменения и начать заново. Разве что можно вручную исправить ошибку. Невозможно указать макросу отменить все действия, которые он выполнил.
По крайней мере, насколько я знаю.
Таким образом, другие участники могут видеть, что уже сделано в отношении вопроса, и не тратить время на работу над вопросом, на который уже может быть дан ответ. Слинас
Новый член
Лучше всего закрыть рабочую книгу, не сохранять изменения и начать заново. Разве что можно вручную исправить ошибку. Невозможно указать макросу отменить все действия, которые он выполнил.
По крайней мере, насколько я знаю.
Теперь по какой-то причине у меня возникла другая проблема с ошибкой Object required.
Это происходит, когда текстовое поле пусто, если значение текстового поля верное, оно переходит к следующему, в чем может быть возможная проблема? strSearch = TextBox6. Value
'~~> Столбец A — это столбец 1, поэтому столбец B — это 2. Здесь мы ищем
'~~> xlWhole используется в приведенном ниже коде, чтобы найти полное совпадение
Если ComboBox1.Value = "Z1" Тогда
Установите aCell = .Columns(1).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если ComboBox1.Value = "Z2" Тогда
Установите aCell = .Columns(2).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если ComboBox1.Value = "Z3" Тогда
Установите aCell = .Columns(3).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если не aCell - это ничто, тогда
aCell. Удалить
Конец, если
стрПоиск = TextBox7.Value
'~~> Столбец A — это столбец 1, поэтому столбец B — это 2. Здесь мы ищем
'~~> xlWhole используется в приведенном ниже коде, чтобы найти полное совпадение
Если ComboBox2.Value = "Z1" Тогда
Установите aCell = .Columns(1).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если ComboBox2.Value = "Z2" Тогда
Установите aCell = .Columns(2).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если ComboBox2.Value = "Z3" Тогда
Установите aCell = .Columns(3).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Конец, если
Если не aCell - это ничто, тогда
aCell.