279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
1 | |
стоит связываться или это не задачка для начинающих?22.11.2013, 16:10. Показов 3245. Ответов 52
Метки нет (Все метки)
Объясню предысторию.
Многие хранят свои картинки на яндексе, затем делают пост вставляя в него уменьшенные копии, причем не всегда есть ссылка на сам альбом где можно взять оригиналы. Для сохранения оригиналов из альбомов приходится сначала скачивать файл с ссылками, затем править в нем ссылки с копии на оригиналы (благо это несложно), запускать измененный файл, потом сохранять с картинками. НО яндекс меняет имена файлов на случайные значения поэтому для упорядоченного списка (например страниц книжки) приходится сейчас редактировать файл убирая все не относящееся к именам а затем делать батник который уже переименует имеющиеся файлы. Даже если есть прямая ссылка на альбом, то там можно скачать его целиком через какой-нибудь менеджер закачек целиком, но, опять же, названия будут кучей символов. Вот такая понимашь загогулина Давно хочется автоматизировать хотя бы последнюю часть html -> bat , которая отнимает львиную часть времени. В идеале, конечно, хотелось бы просто скармливать программе ссылку, а на выходе получать файло-картинки с номерами по порядку в соответствующей папке. Опыт программирования очень небольшой С на 286 (лет 20 назад в институте) поэтому думаю, что полностью задачу не потяну (вообще не в курсе как заставить общаться прогу с инетом). А вот работу со строками наверное смогу попробовать. Как я понимаю надо 1. убрать из файла все строки где нет слова orig.jpg останутся строки такого вида: rel="nofollow"><IMG width="800" height="534" title="" alt="" src="папка1_files/0_cfbf2_39396e7_orig.jpg" 2. укоротить строчки до прямых ссылок на картинки 0_cfbf2_39396e7_orig.jpg 4. далее добавить в каждой строчке с 3. далее добавить в каждой строчке слева REN справа xx.jpg ren 0_cfbf2_39396e7_orig.jpg 01.jpg ren 0_cfbf3_931d3197_orig.jpg 02.jpg ren 0_cfbf4_22ba9201_orig.jpg 03.jpg ren 0_cfbf5_12b53a87_orig.jpg 04.jpg 4. далее сохранить это в bat-файл, который и переименует мои файлы Куда смотреть в первую очередь P.S. Может я придумываю велосипед и все уже придумано до нас?
0
|
22.11.2013, 16:10 | |
Ответы с готовыми решениями:
52
WMI, стоит ли связываться? Стоит ли скрывать robots txt или нет? Если стоит, то как это надо правильно сделать? Стоит ли связываться с ASP.NET MVC ? Дайте плиз рецензию, стоит ли связываться? |
alsav22
|
23.11.2013, 05:08
стоит связываться или это не задачка для начинающих?
#21
|
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
23.11.2013, 08:51 [ТС] | 22 |
Так я в начале и спрашивал про это тоже.
Оптимально ввести только ссылку а прога сама уже будет вытаскивать оригиналы и переименовывая их складывать в нужную папку Но так как в программировании не силен то ограничился задачей, которую, как мне кажется, смогу понять-осилить. тем более что на яндексе есть нюансы - не всегда имеются файлы xxxxx_orig.jpg иногда максимальное разрешение xxx_XXXL.jpg т.е. еще надо вводить доп проверки на наличие оригиналов.ну и добавлять GUI для красоты и удобства так что прога станет довольно навороченной и явно не для новичков кмк Начну пока с понимания более-менее простой конструкции
0
|
0x10
|
23.11.2013, 09:34
#23
|
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 13:15 [ТС] | 24 |
Пытаюсь вместо
ifstream fin("input.html"); сделать ручной ввод имени файла: char filename[25]; cout << "\n Введите имя файла (input.html): "; cin >> filename; cout << "Посмотрите на Ваши данные : "; cout << filename; cout << "\n"; ifstream fin(filename); if (!fin) cout << "Ошибка исходного файла!" << endl; ....... в результате все время ошибка исходного файла что делаю не так?
0
|
Заблокирован
|
||||||
25.11.2013, 13:24 | 25 | |||||
так надо
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 13:33 [ТС] | 26 |
заработало когда вошел в папку с готовым экзешником, а не работает из компилятора
ну и char сменил на string
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 13:51 [ТС] | 28 |
в студии по F5
полазил по настройкам назначив рабочий каталог туда где лежит готовый экзешник теперь и из студии заработало Добавлено через 1 минуту пол дня потратил на то чтобы понять почему правильный код не работал
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 14:36 [ТС] | 30 |
в самой программе или когда запрашивается программой?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
25.11.2013, 14:41 | 32 |
Такие параметры обычно передаются как аргументы командной строки. Опционально в самой программе можно сделать значения по умолчанию. Чтобы не возиться с ручной обработкой списка аргументов, можно взять boost program_options.
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 14:44 [ТС] | 33 |
а есть несложное решение первый десяток нумеровать с нулем спереди, т.е. чтобы было не 1.jpg, а 01.jpg
Добавлено через 2 минуты Сейчас программа ищет в том каталоге где и сама лежит. В принципе меня это устраивает Была проблема с отладкой так как там путь другой был.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
25.11.2013, 14:45 | 34 |
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
25.11.2013, 15:45 | 35 |
По умолчанию, файл ищется студией в папке проекта. Разве ошибку не выдавало, когда не ручной ввод имени файла был?
Добавлено через 48 секунд Если не секрет, для чего такое нужно?
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 15:50 [ТС] | 36 |
некрасиво когда идет так:
1 2 3 4 5 6 7 8 9 10 11 ..... опять же у некоторых вьюверов просмотр косеет при такой нумерации т.е. после первого покажет десятый
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
25.11.2013, 16:06 | 38 |
0
|
|
25.11.2013, 16:09
#39
|
0
|
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
|
|
25.11.2013, 17:33 [ТС] | 40 |
ОК - на новые вопросы буду заводить новые темы Добавлено через 1 час 21 минуту напоследок в этой же теме спрошу string::size_type n = str.find(".jpg"); if (n != string::npos) { str.erase(str.begin(), str.begin() + str.find('/') + 2); str.replace(str.find("XXXL"), 4, "orig"); str.erase(str.begin() + str.find('\"'), str.end()); Пытаюсь добавить замену символов в строке (показано красным) Код компилится без ошибок, но при запуске программы как только доходит до этого места программа валится
0
|
25.11.2013, 17:33 | |
25.11.2013, 17:33 | |
Помогаю со студенческими работами здесь
40
Мусор в движке реальность или миф, стоит удалить и поставить заново, или никак это не влияет Стоит ли взять это пк или нет? Стоит брать это Пк или по критикуйте конфигу Задачка для начинающих Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |