Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
 Аватар для lohness
279 / 206 / 22
Регистрация: 24.04.2008
Сообщений: 1,398

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

22.11.2013, 16:10. Показов 3914. Ответов 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
5499 / 4894 / 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru