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

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

22.11.2013, 16:10. Показов 4246. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru