Процедура КнопкаВыполнитьНажатие(Кнопка)
gooFiles = Новый СписокЗначений;
Если ЗначениеЗаполнено(Каталог) Тогда
СписокФайлов = НайтиФайлы(Каталог, "*.*");
Для каждого htmlFile Из СписокФайлов Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(htmlFile.ПолноеИмя);
Для НомерСтроки = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
ОбработкаПрерыванияПользователя();
СтрокаДокумента = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки);
tmpСтрокаДокумента = СтрЗаменить(СтрокаДокумента, Символ(10), " ");
ПозицияРасширения = Найти(tmpСтрокаДокумента, "." + РасширениеИскомыхФайлов);
Пока ПозицияРасширения 0 Цикл
Для поз = 3 По ПозицияРасширения Цикл
//http:// ../
//1234567 123
Если Сред(tmpСтрокаДокумента, ПозицияРасширения - поз, 1) = "/" Тогда
//Если Сред(tmpСтрокаДокумента, ПозицияРасширения - поз - 1, 1) = "/" Тогда //http://
Если Сред(tmpСтрокаДокумента, ПозицияРасширения - поз - 1, 1) = "."
И Сред(tmpСтрокаДокумента, ПозицияРасширения - поз - 2, 1) = "." Тогда //../
//gooFiles.Добавить(Сред(tmpСтрокаДокумента, ПозицияРасширения - поз - 6, ПозицияРасширения - (ПозицияРасширения - поз - 6) + СтрДлина(РасширениеИскомыхФайлов) + 1));
gooFiles.Добавить(Сред(tmpСтрокаДокумента, ПозицияРасширения - поз - 2, ПозицияРасширения - (ПозицияРасширения - поз - 2) + СтрДлина(РасширениеИскомыхФайлов) + 1));
прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
tmpСтрокаДокумента = Сред(tmpСтрокаДокумента, ПозицияРасширения + СтрДлина(РасширениеИскомыхФайлов) + 1);
ПозицияРасширения = Найти(tmpСтрокаДокумента, "." + РасширениеИскомыхФайлов);
КонецЦикла;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
КонецЦикла;
КонецЕсли;
//удалим дубликаты
УдаленныеЭлементы = 0;
Для file = 0 по gooFiles.Количество() - 1 Цикл
Для file_tmp = 0 по gooFiles.Количество() - 1 Цикл
Если file_tmp = file - УдаленныеЭлементы Тогда
продолжить
КонецЕсли;
Если gooFiles[file - УдаленныеЭлементы].Значение = gooFiles[file_tmp].Значение Тогда
gooFiles.Удалить(file - УдаленныеЭлементы);
УдаленныеЭлементы = УдаленныеЭлементы + 1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для каждого gooFile Из gooFiles Цикл
Сообщить(gooFile.Значение)
КонецЦикла;
КонецПроцедуры
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогФыбораФайла.Заголовок = НСтр("ru = 'Выберите каталог файлов с ссылками на моды World of Goo'; uk = ''");
ДиалогФыбораФайла.ПредварительныйПросмотр = ЛОЖЬ;
Если ЗначениеЗаполнено(Каталог) Тогда
ДиалогФыбораФайла.Каталог = Каталог;
КонецЕсли;
//ДиалогФыбораФайла.Фильтр = "Файлы с ссылками на моды World of Goo (*.html)|*.html";
Если ДиалогФыбораФайла.Выбрать() Тогда
Каталог = ДиалогФыбораФайла.Каталог;
КонецЕсли;
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Каталог = ВосстановитьЗначение("Каталог_goomod");
РасширениеИскомыхФайлов = ВосстановитьЗначение("РасширениеИскомыхФайлов_goomod");
Если НЕ ЗначениеЗаполнено(РасширениеИскомыхФайлов) Тогда
РасширениеИскомыхФайлов = "goomod"
КонецЕсли;
КонецПроцедуры
Процедура ПриЗакрытии()
СохранитьЗначение("Каталог_goomod", Каталог);
СохранитьЗначение("РасширениеИскомыхФайлов_goomod", РасширениеИскомыхФайлов);
КонецПроцедуры
Скачать: goomod.epf (1119 Загрузок)