Программулька сия позволяет генерировать ссылки на файлы, хранящиеся в сети, с целью их последующего скачивания. Эта программа определенным образом перекликается с еще одной моей прогой (ChainDownloader), генерируя ссылки примерно по тому же принципу. Здесь представлен расширенный и дополненный вариант. Программа состоит из оболочки (exe-файла) и библиотеки (dll), в которой производятся основные вычисления. Написана и скомпилирована программа в CodeGear RAD Studio 2010 Architect.
Что же позволяет сделатьLinkGenerator?
Разбивка ссылки на "куски" и автоматическое определение типа переменной (численная / алфавитная)
Независимое изменение частей входной строки по собственным формулам
Редактирование всех параметров каждого "куска" (начальное значение, формула изменения, число изменения, число повторений, размер цикла, активность/неактивность)
Возможность редактировать коды входной строки и строки параметров вручную
Возможность использовать любые символы для кодирования входной строки (по умолчанию: "|" - граница "куска", "#" - численная переменная, "$" - алфавитная переменная)
Генерация выходных ссылок в текстовый файл - таким образом можно генерировать практически неограниченное количество ссылок, т.к. запись в файл происходит при помощи низкоуровневой IO-процедуры
Расширенный контроль ошибок (например, если библиотека не может подключиться, кнопка "Generate" неактивна)
Пока что нет никакого хелп-файла, но я могу его потом добавить (если надо). Работа с программой предельно проста:
Вставляем входную строку в верхнее поле окна (зеленое) (т.е. первую ссылку, в которой имеются изменяющиеся части).
Добавляем изменяемые части (при помощи выделения мышью из строки и нажатия кнопки "+").
При необходимости удаляем из списка ненужные части при помощи кнопки "х". Также можно полностью очистить весь список, нажав на значок пустой страницы. Сортировка частей происходит автоматически (по положению в строке), поэтому добавлять можно в любом порядке.
Вводим количество ссылок для генерации (No. of links) и жмем "Update".
Редактируем параметры частей в таблице: при двойном щелчке выходит окошко для данной переменной, в котором можно настраивать параметры.
При необходимости редактируем вручную полученный параметр (Par. 1) - для этого надо активировать это поле, поставив галочку "Edit" сбоку.
Указываем имя и путь выходного файла (зеленое поле внизу окна).
Жмем кнопку "Generate!" и ждем, пока рядом с ней не появится надпись "Open file" - это значит, что файл создан и сохранен успешно.
Теперь можно нажать на эту надпись, и откроется ваш файл со ссылками!
Смотрите изображение с пояснениями (на английском):
Прочие примечания:
Полученный список ссылок, разделенных строками, можно "скормить" менеджеру закачек (например, такая опция есть в популярном DownloadMaster'е) для батч-закачки. Альтернатива: написать свой скрипт :)
Есть какие-то глюки при редактировании параметров: иногда параметры в окне настроек переменной отображаются неправильно. Я работаю над этой проблемой. Пока что единственное "противоядие" - редактировать строку параметров в ручном режиме.
При записи в файл программа стирает все его содержимое (если файл существует) и пишет сверху. Поэтому нет возможности "дописывать" в файлы. Это можно сделать обходным путем: сохранить линки в разные файлы, затем соединить их (простой DOS-скрипт или ручками). Реализовать дописывание легко, но я не стал загромождать прогу всякими хитростями.
Не обращайте внимания на параметр "Par. 2" -- это пока в разработке (возможность редактирования параметров сразу для всех переменных).
Символы (placeholders) в кодированной строке (серое поле справа вверху окна) не имеют значения. Однако важно выбирать такие символы, какие точно НЕ встречаются в самой (некодированной) строке. То есть, если, например, строка выглядит так: "www.links.com/link001&002.doc", убедитесь, что среди специальных символов для кодирования частей (по умолчанию: "|" - граница "куска", "#" - численная переменная, "$" - алфавитная переменная) нет амперсандов (&) и слэшев (/). Если символы по умолчанию есть в строке, их следует заменить (например для границ можно использовать "@", а для чисел - "%" или "*").