Процедура КнопкаВыполнитьНажатие(Кнопка) 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 (985 Загрузок)