Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398

стоит связываться или это не задачка для начинающих?

22.11.2013, 16:10. Показов 4452. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2013, 16:10
Ответы с готовыми решениями:

WMI, стоит ли связываться?
Посмотрел, очень удобная штука, но есть проблема, прога с такой фишкой пойдет далеко не на всех машинах, про 95-98 вообще молчу. Что скажут...

Стоит ли скрывать robots txt или нет? Если стоит, то как это надо правильно сделать?
Ребят, если стоит скрывать роботс, то скажите как это сделать, особо толком ничего не нашел в поисковике(больше спама).

Стоит ли связываться с ASP.NET MVC ?
Извините за немного провокационную тему, но не нашел более подходящего форума. В общем есть проект десктопное приложение + мобильные...

52
23.11.2013, 05:08
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
А давайте сыграем в гольф?
Такой хоккей нам не нужен...:)

0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
23.11.2013, 08:51  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение

Не по теме:

Эм... А зачем создавать батник, если средствами стандартных библиотек можно сразу переименовать?

Так я в начале и спрашивал про это тоже.
Оптимально ввести только ссылку а прога сама уже будет вытаскивать оригиналы и переименовывая их складывать в нужную папку
Но так как в программировании не силен то ограничился задачей, которую, как мне кажется, смогу понять-осилить.
тем более что на яндексе есть нюансы - не всегда имеются файлы xxxxx_orig.jpg иногда максимальное разрешение xxx_XXXL.jpg
т.е. еще надо вводить доп проверки на наличие оригиналов.ну и добавлять GUI для красоты и удобства

так что прога станет довольно навороченной и явно не для новичков кмк


Начну пока с понимания более-менее простой конструкции
0
23.11.2013, 09:34

Не по теме:

Цитата Сообщение от lohness Посмотреть сообщение
так что прога станет довольно навороченной и явно не для новичков
Да нет тут ничего сверхъестественного. сделать запрос на указанный урл, стянуть html, распарсить, получить урлы изображений, сохранить под новыми именами. Просто писать такое лучше с использованием более высокоуровневых инструментов.

0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 13:15  [ТС]
Пытаюсь вместо

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
C++
1
2
3
4
5
6
7
8
9
10
11
std::string filename;
std::cout << "\n Введите имя файла (input.html): ";
std::cin >> filename;
std::cout << "Посмотрите на Ваши данные : "; 
std::cout << filename << std::endl;
std::fstream fs(filename.c_str(), std::ios::in);
if(fs.is_open())
{
    //делаем что надо
    fs.close();
}
Добавлено через 19 секунд
так надо
0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 13:33  [ТС]
заработало когда вошел в папку с готовым экзешником, а не работает из компилятора

ну и char сменил на string
0
Заблокирован
25.11.2013, 13:34
Цитата Сообщение от lohness Посмотреть сообщение
заработало когда вошел в папку с готовым экзешником, а не работает из компилятора
что значит из компилятора?
0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 13:51  [ТС]
в студии по F5

полазил по настройкам назначив рабочий каталог туда где лежит готовый экзешник теперь и из студии заработало

Добавлено через 1 минуту
пол дня потратил на то чтобы понять почему правильный код не работал
0
Заблокирован
25.11.2013, 13:58
Цитата Сообщение от lohness Посмотреть сообщение
пол дня потратил на то чтобы понять почему правильный код не работал
можно вводить полный путь к файлу
0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 14:36  [ТС]
в самой программе или когда запрашивается программой?
0
Заблокирован
25.11.2013, 14:39
Цитата Сообщение от lohness Посмотреть сообщение
или когда запрашивается программой?
да когда угодно, можно и когда программа запрашивает, можно в программе, а можно и параметром в командной строке
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
25.11.2013, 14:41
Цитата Сообщение от lohness Посмотреть сообщение
в самой программе или когда запрашивается программой?
Такие параметры обычно передаются как аргументы командной строки. Опционально в самой программе можно сделать значения по умолчанию. Чтобы не возиться с ручной обработкой списка аргументов, можно взять boost program_options.
0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 14:44  [ТС]
а есть несложное решение первый десяток нумеровать с нулем спереди, т.е. чтобы было не 1.jpg, а 01.jpg

Добавлено через 2 минуты
Цитата Сообщение от newbie666 Посмотреть сообщение
да когда угодно, можно и когда программа запрашивает, можно в программе, а можно и параметром в командной строке

Сейчас программа ищет в том каталоге где и сама лежит.
В принципе меня это устраивает

Была проблема с отладкой так как там путь другой был.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
25.11.2013, 14:45
Цитата Сообщение от lohness Посмотреть сообщение
а есть несложное решение первый десяток нумеровать с нулем спереди, т.е. чтобы было не 1.jpg, а 01.jpg
http://en.cppreference.com/w/cpp/io/manip/setfill
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.11.2013, 15:45
Цитата Сообщение от lohness Посмотреть сообщение
полазил по настройкам назначив рабочий каталог туда где лежит готовый экзешник теперь и из студии заработало
По умолчанию, файл ищется студией в папке проекта. Разве ошибку не выдавало, когда не ручной ввод имени файла был?

Добавлено через 48 секунд
Цитата Сообщение от lohness Посмотреть сообщение
а есть несложное решение первый десяток нумеровать с нулем спереди, т.е. чтобы было не 1.jpg, а 01.jpg
Если не секрет, для чего такое нужно?
0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 15:50  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
По умолчанию, файл ищется студией в папке проекта. Разве ошибку не выдавало, когда не ручной ввод имени файла был?

Добавлено через 48 секунд

Если не секрет, для чего такое нужно?
некрасиво когда идет так:
1
2
3
4
5
6
7
8
9
10
11
.....

опять же у некоторых вьюверов просмотр косеет при такой нумерации т.е. после первого покажет десятый
0
Заблокирован
25.11.2013, 15:56
ну ты в строку загоняй данные - в std::string, далее проверяй, если size() стринга == 1. тогда insert(0, "0");
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
25.11.2013, 16:06
Цитата Сообщение от newbie666 Посмотреть сообщение
ну ты в строку загоняй данные - в std::string, далее проверяй, если size() стринга == 1. тогда insert(0, "0");
Эм... Как бы я выше привел ссылку на прямое решение.
0
25.11.2013, 16:09

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
Эм... Как бы я выше привел ссылку на прямое решение.
ok - не заметил, эта тема просто уже на пустом месте раздулась неимоверно - даже читать то что сверху уже лень :D

0
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398
25.11.2013, 17:33  [ТС]
Цитата Сообщение от newbie666 Посмотреть сообщение

Не по теме:


ok - не заметил, эта тема просто уже на пустом месте раздулась неимоверно - даже читать то что сверху уже лень :D


ОК - на новые вопросы буду заводить новые темы

Добавлено через 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2013, 17:33

Дайте плиз рецензию, стоит ли связываться?
стоит ли иметь как раб. инструменты программы AddSite Pro &amp; Semonitor? на много они хуже, слабее NetPromoter? цена сильно отличается :) ...

Мусор в движке реальность или миф, стоит удалить и поставить заново, или никак это не влияет
Друзья, подскажите пожалуйста, только без догадок, а те кто реально знает и понимает о чем речь! Суть такова, я сделал сайт на...

Стоит ли взять это пк или нет?
Ну в общем вопрос таков, характеристика нормальные? :D Характеристики компьютера: Центральный процессор: AMD Athlon II x2 (2.40 GHz)...

Стоит брать это Пк или по критикуйте конфигу
Мат.плата Gigabyte GA-Z68P-DS3 Soc-1155 iZ68 Процессор Core i5-3450 OEM &lt;3.10GHz, 6Mb, LGA Вентилятор DeepCool...

Задачка для начинающих
На базе 1с7.7 нужно вывести произвольное число, представляющее собой массу, в виде, например, &quot;Двадцать две тонны триста сорок пять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru