Zireael |
Отправлено: 30 Сентября, 2019 - 13:44:16
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Скачать файлы (Отобразить)CODE:string rn=formatic(13)+formatic(10);
string s="https:/"+"/i.pinimg.com/736x/2d/dc/25/2ddc25914e2ae0db5311ffa41781dda1.jpg"+rn+
"https:/"+"/2krota.ru/wp-content/uploads/2019/02/0_i-1.jpg"+rn+
"http:/"+"/zabavnik.club/wp-content/uploads/kartinki_32_07140102.jpg"; // строка, в которой ссылки
string path="C:\"; // куда скачать файлы
messagebox(s);
int count_file=download(s, path); // вызов функции, которая скачает найдёт ссылки и скачает файлы
messagebox("Скачено файлов: "+format(count_file));
function download(string s, string path_save)
{
char text[9999999];
string link[99], name_file, domain, body;
int count_download_file=0;
regexreplace(1, #path_save, path_save, "(.+?)\\*$", "$1\");
int count_link=regexsearch(sizearray(link), #link[0], s, "https?:\/\/[^\r\n]+", MULTILINE);
if(count_link)
{
for(int i=0; i<count_link; i++)
{
if(regexsearch(1, #domain, link[i], "https?:\/\/[^\/]+"))
{
if(regexreplace(1, #body, link[i], "https?:\/\/[^\/]+\/(.+)", "$1"))
{
if(regexsearch(1, #name_file, body, "[^\/]+$"))
{
int count_byte=sendgetweb(#text[0], "Mozilla", "GET", domain, body);
if(count_byte>0)
{
if(fopen(path_save+name_file, "wb"))
{
fwriteb(#text[0], count_byte);
fclose();
count_download_file++;
}
}
}
}
}
}
}
return count_download_file;
} |
|
|
Budni |
Отправлено: 01 Октября, 2019 - 15:21:05
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael , а можно как то добавлять имена скаченных файлов? В буфер или в текстовый файл построчно?
(Добавление)
Сделал так, но сохраняется только имя последниго файл в буфер обмена
CODE:
string s;
readclipboard (s);
string rn=formatic(13)+formatic(10);
string path="C:\new"; // куда скачать файлы
messagebox(s);
int count_file=download(s, path); // вызов функции, которая скачает найдёт ссылки и скачает файлы
messagebox("Скачено файлов: "+format(count_file));
function download(string s, string path_save)
{
char text[9999999];
string link[99], name_file, domain, body;
int count_download_file=0;
regexreplace(1, #path_save, path_save, "(.+?)\\*$", "$1\");
int count_link=regexsearch(sizearray(link), #link[0], s, "https?:\/\/[^\r\n]+", MULTILINE);
if(count_link)
{
for(int i=0; i<count_link; i++)
{
if(regexsearch(1, #domain, link[i], "https?:\/\/[^\/]+"))
{
if(regexreplace(1, #body, link[i], "https?:\/\/[^\/]+\/(.+)", "$1"))
{
if(regexsearch(1, #name_file, body, "[^\/]+$"))
{
int count_byte=sendgetweb(#text[0], "Mozilla", "GET", domain, body);
if(count_byte>0)
{
if(fopen(path_save+name_file, "wb"))
{
fwriteb(#text[0], count_byte);
fclose();
count_download_file++;
string P[99999];
string si="";
for(int i1=0; i1<count_link; i1++)si=P[i1]+name_file+formatic(13)+formatic(10);
writeclipboard (si);
}
}
}
}
}
}
}
return count_download_file;
}
(Добавление)
Так тоже только 1 строка добавляется в файл
тхт (Отобразить)CODE:string s;
readclipboard (s);
string rn=formatic(13)+formatic(10);
string path="C:\new"; // куда скачать файлы
messagebox(s);
int count_file=download(s, path); // вызов функции, которая скачает найдёт ссылки и скачает файлы
messagebox("Скачено файлов: "+format(count_file));
function download(string s, string path_save)
{
char text[9999999];
string link[99], name_file, domain, body;
int count_download_file=0;
regexreplace(1, #path_save, path_save, "(.+?)\\*$", "$1\");
int count_link=regexsearch(sizearray(link), #link[0], s, "https?:\/\/[^\r\n]+", MULTILINE);
if(count_link)
{
for(int i=0; i<count_link; i++)
{
if(regexsearch(1, #domain, link[i], "https?:\/\/[^\/]+"))
{
if(regexreplace(1, #body, link[i], "https?:\/\/[^\/]+\/(.+)", "$1"))
{
if(regexsearch(1, #name_file, body, "[^\/]+$"))
{
int count_byte=sendgetweb(#text[0], "Mozilla", "GET", domain, body);
if(count_byte>0)
{
if(fopen(path_save+name_file, "wb"))
{
fwriteb(#text[0], count_byte);
fclose();
count_download_file++;
if(fopen (pathfolder()+"ko.txt", "w")) // открыть файл для записи
{fwrite(name_file); // записывать координаты X и Y
fwrite(ENDL); // перенос строки
fclose();
}
}
}
}
}
}
}
}
return count_download_file;
}
start(pathfolder()+"ko.txt"); |
|
|
Dantes3000 |
Отправлено: 01 Октября, 2019 - 16:50:35
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Budni пишет: Так тоже только 1 строка добавляется в файл
if(fopen (pathfolder()+"ko.txt", "w" ))
w - открыть файл для записи. Если такого файла нет он создается. Если есть он перезапишется.
a - открыть файл для записи. Если такого файла нет он создается. Если есть он будет дописываться.(Отредактировано автором: 01 Октября, 2019 - 16:51:18) |
|
|
|