Автор | Сообщение |
|
| |
Пост N: 305
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.05.21 09:23. Заголовок: FTP как получить полную дату и время файла ?
::list() -rw-r--r-- 1 login_1 hosting 17408 Dec 4 09:34 reestr.xls -rw-r--r-- 1 login_1 hosting 24064 Dec 12 2018 rko.xls -rw-r--r-- 1 login_1 hosting 18432 Apr 12 2019 sale.xls -rw-r--r-- 1 login_1 hosting 17408 Apr 19 15:38 schet.xls -rw-r--r-- 1 login_1 hosting 16384 May 11 16:40 sms.xls ::listFiles() reestr.xls 17408 / / 09:34 -rw-r--r-- 1 login_1 hosting rko.xls 24064 12/12/18 -rw-r--r-- 1 login_1 hosting sale.xls 18432 12/04/19 -rw-r--r-- 1 login_1 hosting schet.xls 17408 19/04/21 15:38 -rw-r--r-- 1 login_1 hosting sms.xls 16384 11/05/21 16:40 -rw-r--r-- 1 login_1 hosting TotalCommander reestr.xls 17 408 04.12.2020 09:34 -644 rko.xls 24 064 12.12.2018 17:42 -644 sale.xls 18 432 12.04.2019 21:40 -644 schet.xls 17 408 19.04.2021 15:38 -644 sms.xls 16 384 11.05.2021 16:40 -644 ftp -rw-r--r-- 1 login_10 hosting 17408 Dec 4 09:34 reestr.xls -rw-r--r-- 1 login_10 hosting 24064 Dec 12 2018 rko.xls -rw-r--r-- 1 login_10 hosting 18432 Apr 12 2019 sale.xls -rw-r--r-- 1 login_10 hosting 17408 Apr 19 15:38 schet.xls -rw-r--r-- 1 login_10 hosting 16384 May 11 16:40 sms.xls Как это делает TotalCommander ?
|
|
|
Ответов - 45
, стр:
1
2
3
All
[только новые]
|
|
|
| |
Пост N: 7343
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 16:33. Заголовок: Чекнул у себя. Дейст..
Чекнул у себя. Действительно , если у файла не текущий год , тогда в LIST теряется время. Если год текущий тогда передаст что то типа Apr 19 15:38 А если нет то Apr 19 2019 и время теряется...... MIKHAIL пишет: цитата: | Как это делает TotalCommander ? |
| Возможно он дополнительно по каждому файлу делает MDTM Syntax: MDTM remote-filename Возврат в формате "YYYYMMDDhhmmss"
|
|
|
|
| |
Пост N: 306
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.05.21 16:53. Заголовок: Dima пишет: Возможн..
Dima пишет: цитата: | Возможно он дополнительно по каждому файлу делает MDTM Syntax: MDTM remote-filename Возврат в формате "YYYYMMDDhhmmss" |
| Да, тоже нагуглил пока только так наверное нужно ее использовать через METHOD UserCommand( cCommand, lPasv, lReadPort, lGetReply ) CLASS TIPClientFTP ?
|
|
|
|
| |
Пост N: 7344
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 16:58. Заголовок: MIKHAIL пишет: Да, ..
MIKHAIL пишет: цитата: | Да, тоже нагуглил пока только так |
| Поэтому можно делать укороченный лист NLST + по этому массиву имен MDTM
|
|
|
|
| |
Пост N: 307
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.05.21 17:03. Заголовок: Dima пишет: Поэтому..
Dima пишет: цитата: | Поэтому можно делать укороченный лист NLST + по этому массиву имен MDTM |
| через METHOD UserCommand( cCommand, lPasv, lReadPort, lGetReply ) CLASS TIPClientFTP ?
|
|
|
|
| |
Пост N: 7345
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 17:05. Заголовок: думаю да если мы про..
думаю да если мы про HBTIP , я его не юзаю больше и пересел на HBCURL
|
|
|
|
| |
Пост N: 308
Зарегистрирован: 05.10.06
|
|
Отправлено: 12.05.21 17:09. Заголовок: Dima пишет: пересел..
Dima пишет: а в чем его преимущество,можно вкратце ?
|
|
|
|
| |
Пост N: 7346
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 17:12. Заголовок: MIKHAIL пишет: а в ..
MIKHAIL пишет: цитата: | а в чем его преимущество,можно вкратце ? |
| быстрее и надежнее
|
|
|
|
| |
Пост N: 7347
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 18:36. Заголовок: Dima пишет: Поэтому..
Dima пишет: цитата: | Поэтому можно делать укороченный лист NLST + по этому массиву имен MDTM |
| Был не прав и менее затратный вариант такой. Получаем LISTFILES и затем ходим по этому массиву и где время пустое , там запрашиваем MDTM (вытаскиваем время) и ложим в этот же массив на место пустого времени
|
|
|
|
| |
Пост N: 7348
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.05.21 21:38. Заголовок: Покопал слегка. Есть..
Покопал слегка. Есть еще MLSD. Надо разбираться что живет в modify Пример type=file;size=433;modify=20200213145801; F_4696_36444.ZIP type=file;size=435;modify=20210213145801; F_4764_36446.ZIP
|
|
|
|
| постоянный участник
|
Пост N: 1683
Зарегистрирован: 09.10.06
|
|
Отправлено: 12.05.21 22:16. Заголовок: Dima пишет: Надо ра..
|
|
|
|
| |
Пост N: 309
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.05.21 15:34. Заголовок: Dima пишет: Есть ещ..
Dima пишет: чет в обычном ftp не работает ни MLSD ни MDTM и ::usercommand() не удается заставить работать а в curl как это работает ? есть примеры посмотреть ?
|
|
|
|
|
| |
Пост N: 7350
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.05.21 16:06. Заголовок: MIKHAIL пишет: ::us..
MIKHAIL пишет: цитата: | ::usercommand() не удается заставить работать |
| Та же фигня....... Пример сейчас дам #include "hbcurl.ch" proc main Local aftpPar curl_global_init() aftpPar:=LoadNastrFtp() // загружаем настройки FTP из базы ? TestMLSD(aftpPar[6],aftpPar[4],aftpPar[5],aftpPar[14]) curl_global_cleanup() return ************ FUNCTION TestMLSD( cserver,cuser,cpassword,nport,rdir) LOCAL cUrl LOCAL lRet := .f. Local Cftp:="ftp://"+cserver+":"+hb_ntos(nport) local nerr curl := curl_easy_init() if empty(curl) ? "Bad curl_easy_init" return lRet endif do while .t. curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD ) curl_easy_setopt( curl, HB_CURLOPT_URL, cftp ) curl_easy_setopt( curl, HB_CURLOPT_USERPWD,cuser+":"+cpassword) curl_easy_setopt( curl, HB_CURLOPT_FTP_USE_EPSV,0) // 0 PASV 1 EPASV curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) if !empty(rdir) curl_easy_setopt( curl, HB_CURLOPT_QUOTE, { "CWD "+rdir} ) endif curl_easy_setopt( curl, HB_CURLOPT_CUSTOMREQUEST,"MLSD") nerr:=curl_easy_perform( curl ) if nerr#0 ? "CurlError "+hb_ntos(nerr) exit endif strfile(curl_easy_dl_buff_get( curl ),"lst.log") exit enddo curl_easy_cleanup( curl ) RETURN lRet PS У меня Gene6 FTP Server и он понимает MLSD
|
|
|
|
| |
Пост N: 310
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.05.21 22:34. Заголовок: Dima а что нужно под..
Dima а что нужно подключить что бы собралось ? цитата: | Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_curl_global_init_mem' referenced from D:\HB\LIB\WIN \BCC\HBCURL.LIB|core Error: Unresolved external '_curl_global_cleanup' referenced from D:\HB\LIB\WIN\ BCC\HBCURL.LIB|core ....... |
|
|
|
|
|
| постоянный участник
|
Пост N: 1685
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.21 22:38. Заголовок: MIKHAIL пишет: а чт..
MIKHAIL пишет: цитата: | а что нужно подключить что бы собралось ? |
| libcurl.lib
|
|
|
|
| |
Пост N: 7351
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.05.21 22:41. Заголовок: MIKHAIL Фиг знает н..
MIKHAIL Фиг знает не скажу , у меня MINGW. Это я про сборку либы. Собираю таким батником (который поселил в папку с сырцом HBCURL) set PATH=%PATH%;C:\MinGW12\bin;c:\hb32mingw19\bin\ set HB_WITH_CURL=c:\curl\7761\include set HB_STATIC_CURL=yes c:\hb32mingw19\bin\hbmk2 hbcurl Петр пишет: Скорее всего так и есть !
|
|
|
|
| постоянный участник
|
Пост N: 1686
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.21 22:50. Заголовок: Нужно подключать биб..
Нужно подключать библиотеку импорта Для MINGW это делается примерно так: @echo off setlocal set PATH=c:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin rem -v --verbose rem -d --input-def rem -l --output-lib rem -y --output-delaylib dlltool -v -d libcurl-x64.def -l liblibcurl-x64.a dlltool -v -d libcurl-x64.def -y liblibcurld-x64.a endlocal libcurl-x64.def берем из curl-7.76.1-win64-mingw\bin\libcurl-x64.def (ну это у меня так) имя liblibcurl-x64 можем задать любое (здесь лучше без фанатизма). Для bcc используется implib
|
|
|
|
| постоянный участник
|
Пост N: 1687
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.21 22:57. Заголовок: И еще. Поскольку li..
И еще. Поскольку libcurl-x64.def содержит только секцию EXPORTS, его нужно отредактировать добавив секцию LIBRARY цитата: | LIBRARY libcurl-x64 EXPORTS curl_easy_cleanup @1 |
|
|
|
|
|
| постоянный участник
|
Пост N: 1688
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.21 23:10. Заголовок: Dima пишет: Та же ф..
Dima пишет: А вот здесь (ftp.funet.fi/pub/) работает цитата: | #include "hbcurl.ch" #define CURL_HTTP_VERSION_2TLS 4 PROCEDURE Main() LOCAL curl, aTmp, a, rDir := "" LOCAL nCURLCode curl_global_init() IF ! Empty( curl := curl_easy_init() ) curl_easy_setopt( curl, HB_CURLOPT_BUFFERSIZE, 102400 ) curl_easy_setopt( curl, HB_CURLOPT_URL, "ftp.funet.fi/pub/" ) curl_easy_setopt( curl, HB_CURLOPT_NOPROGRESS, .T. ) curl_easy_setopt( curl, HB_CURLOPT_USERAGENT, "curl/7.75.0" ) curl_easy_setopt( curl, HB_CURLOPT_MAXREDIRS, 50 ) curl_easy_setopt( curl, HB_CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, .F. ) curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, .F. ) curl_easy_setopt( curl, HB_CURLOPT_FTP_USE_EPSV, .F. ) /* please ignore the IP in the PASV response */ curl_easy_setopt( curl, HB_CURLOPT_FTP_SKIP_PASV_IP, .T. ) curl_easy_setopt( curl, HB_CURLOPT_FTP_FILEMETHOD, 3 ) curl_easy_setopt( curl, HB_CURLOPT_TCP_KEEPALIVE, .T. ) curl_easy_setopt( curl, HB_CURLOPT_CUSTOMREQUEST, "MLSD" ) IF ! Empty( rDir ) curl_easy_setopt( curl, HB_CURLOPT_QUOTE, { "CWD " + rDir } ) ENDIF curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP ) nCURLCode := curl_easy_perform( curl ) IF nCURLCode == HB_CURLE_OK ? "EFFECTIVE URL:", curl_easy_getinfo( curl, HB_CURLINFO_EFFECTIVE_URL ) cTmp := curl_easy_dl_buff_get( curl ) aTmp := hb_ATokens( cTmp, hb_eol() ) FOR EACH a IN aTmp IF hb_LeftEq( a, "type=dir" ) ? a ENDIF NEXT ELSE ? nCURLCode, ":", curl_easy_strerror( nCURLCode ) ENDIF /* Cleanup session */ curl_easy_cleanup( curl ) ENDIF curl_global_cleanup() RETURN |
|
|
|
|
|
| |
Пост N: 7352
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.05.21 23:17. Заголовок: Петр пишет: А вот з..
Петр пишет: цитата: | А вот здесь (ftp.funet.fi/pub/) работает |
| так это я про hbtip писал и usercommand
|
|
|
|
| постоянный участник
|
Пост N: 1689
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.21 23:33. Заголовок: Dima пишет: так это..
Dima пишет: цитата: | так это я про hbtip писал и usercommand |
| Понял, lReadPort := .t. lGetReply := .t. if ftp:UserCommand( "MLSD", lPasv, @lReadPort, @lGetReply ) ? lReadPort ? lGetReply ... endif и так не работает ?
|
|
|
|
| |
Пост N: 7353
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.05.21 07:06. Заголовок: Петр пишет: и так н..
Петр пишет: Нет. Сервер выдал 500 Unknown command Программа "долго" висела на UserCommand и после получил ftp:UserCommand( "MLSD", lPasv, @lReadPort, @lGetReply ) // .T. lReadPort // NIL lGetReply // .F. Под HBCURL все работает нормально
|
|
|
|
|
| |
Пост N: 7354
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.05.21 07:21. Заголовок: Петр пишет: curl_ea..
Петр пишет: цитата: | curl_easy_setopt( curl, HB_CURLOPT_FTP_FILEMETHOD, 3 ) |
| я что то разницы не заметил между CURLFTPMETHOD_SINGLECWD и CURLFTPMETHOD_MULTICWD (по умолчанию) в плане скорости Петр пишет: цитата: | curl_easy_setopt( curl, HB_CURLOPT_USERAGENT, "curl/7.75.0" ) |
| для FTP не работает и не должно Петр пишет: цитата: | curl_easy_setopt( curl, HB_CURLOPT_FTP_SKIP_PASV_IP, .T. ) |
| с этой штукой на мобильном киевстаре , глюков еще больше , кроме 28 ошибки , еще и ошибка передачи , при PASV естественно
|
|
|
|
| |
Пост N: 7355
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.05.21 07:41. Заголовок: Dima пишет: Нет. Се..
Dima пишет: цитата: | Нет. Сервер выдал 500 Unknown command Программа "долго" висела на UserCommand и после получил ftp:UserCommand( "MLSD", lPasv, @lReadPort, @lGetReply ) // .T. |
| Вот так заработало oftp:UserCommand("MLSD"+CRLF ................ Но думает очень долго (пробовал и с другими командами)
|
|
|
|
| постоянный участник
|
Пост N: 1690
Зарегистрирован: 09.10.06
|
|
Отправлено: 14.05.21 12:00. Заголовок: Dima пишет: oftp:Us..
Dima пишет: цитата: | oftp:UserCommand("MLSD"+CRLF |
| в UserCommand забыли добавить ::inetSendAll( ::SocketCon, hb_defaultValue( cCommand, "" ) + ::cCRLF ) А может и специально так.
|
|
|
|
| |
Пост N: 7357
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.05.21 12:13. Заголовок: Петр Петр пишет: М..
|
|
|
|
| |
Пост N: 7359
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.05.21 20:41. Заголовок: MIKHAIL Разобрался ..
MIKHAIL Разобрался с HBCURL и MLSD ?
|
|
|
|
| |
Пост N: 7360
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.05.21 19:12. Заголовок: Dima пишет: ftp:Use..
Dima пишет: цитата: | ftp:UserCommand( "MLSD", lPasv, @lReadPort, @lGetReply ) |
| Вот так надо что бы не "висела" команда и тогда всё работает шустро lGetReply :=.F. oftp:UserCommand( "MLSD"+CRLF, lPasv, @lReadPort, @lGetReply )
|
|
|
|
| |
Пост N: 312
Зарегистрирован: 05.10.06
|
|
Отправлено: 15.05.21 20:00. Заголовок: Dima пишет: Разобра..
Dima пишет: цитата: | Разобрался с HBCURL и MLSD ? |
| нет пока HBCURL пока не брался, не понял как импортировать библиотеку, да и переделывать много не хочется, только timestamp файла и нужно получать... пробовал по разному usercommand, начала работать, но в переменные по ссылке всегда возвращает либо ничего либо логическое значение, но как то странно что в ::cReply иногда выскакивает timestamp иногда что то другое, нет стабильности и долго обрабатывает MDTM, в общем еще разбираюсь...
|
|
|
|
| |
Пост N: 7362
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.05.21 20:20. Заголовок: MIKHAIL пишет: нача..
MIKHAIL пишет: цитата: | начала работать, но в переменные по ссылке всегда возвращает либо ничего либо логическое значение |
| Какой FTP сервер ? PS Могу проверить от себя если надо под HBTIP и HBCURL Если что данные для входа в личку кидай Обещаю ни чего не ломать и не строить
|
|
|
|
| |
Пост N: 313
Зарегистрирован: 05.10.06
|
|
Отправлено: 17.05.21 21:27. Заголовок: Dima пишет: Какой F..
Dima пишет: в логах Server (Sun Solaris 9i), написал в их техподдержку , что то у них там случилось, целый день ковыряют, как сделают проверю, если не получиться скину учетку на тест в личку
|
|
|
|
| |
Пост N: 7364
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.05.21 23:24. Заголовок: MIKHAIL ok..
MIKHAIL ok
|
|
|
|
|
| |
Пост N: 314
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.05.21 18:32. Заголовок: Dima MDTM заработал..
Dima MDTM заработало все норм, я не знал что смотреть ответ в ::cReply нужно ... MLSD так и не заработала через ::usercommand(), что то там не то, скопировал класс, написал свой метод, тогда заработал. Но как я понял, он работает по входящему порту в активном режиме, а за NAT работать скорее всего не будет, так что только MDTM можно использовать А как можно добавить метод к существующему классу что бы не копировать его полностью ? __objAddMethod можно добавить функцию, но в ней не доступны переменные класса
|
|
|
|
| |
Пост N: 7365
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 19:16. Заголовок: MIKHAIL Попробуй по..
|
|
|
|
| |
Пост N: 315
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.05.21 19:57. Заголовок: Dima пишет: На стра..
Dima пишет: цитата: | На странице ищи __objAddMethod |
| так я об этом и писал, там можно добавить функцию, но в самой функции переменных класса не видно, либо я что то не так делаю....
|
|
|
|
| |
Пост N: 7366
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 20:00. Заголовок: а пробни через CURL...
|
|
|
|
| постоянный участник
|
Пост N: 3725
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.05.21 20:07. Заголовок: MIKHAIL Local o := ..
MIKHAIL Local o := QSelf() должно помочь или просто сделайте свой класс наследуя от TIPClientFTP, т.е. CLASS myFTP TIPClientFTP INHERIT TIPClientFTP DATA ... METHOD New( oUrl, xTrace, oCredentials ) INLINE ( ::Super:New( oUrl, xTrace, oCredentials ), Self ) METHOD myMethod() CLASS myFTP END CLASS METHOD myMethod() CLASS myFTP ... RETURN Self
|
|
|
|
| постоянный участник
|
Пост N: 3726
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.05.21 20:10. Заголовок: CLASS myFTP TIPClien..
CLASS myFTP TIPClientFTP INHERIT TIPClientFTP это лишнее, не убрал Дима, что то у меня опять пропала возможность править пост
|
|
|
|
| |
Пост N: 7367
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 20:13. Заголовок: SergKis пишет: Дима..
SergKis пишет: цитата: | Дима, что то у меня опять пропала возможность править пост |
| я ни чего не трогал в твоей учётке. Могу модераторские полномочия предложить только :)
|
|
|
|
| постоянный участник
|
Пост N: 3727
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.05.21 20:30. Заголовок: Dima пишет Могу моде..
Dima пишет цитата: | Могу модераторские полномочия предложить только :) |
| Может и не надо, со временем стало туговато, захожу не так часто. Как говориться "и так сойдет"
|
|
|
|
| |
Пост N: 7368
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 20:56. Заголовок: SergKis пишет: Как ..
SergKis пишет: цитата: | Как говориться "и так сойдет" |
| Глянул учетку , у тебя пол не определён , выбрано нет , может в этом дело ?
|
|
|
|
| постоянный участник
|
Пост N: 3728
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.05.21 21:12. Заголовок: Dima пишет Глянул уч..
Dima пишет цитата: | Глянул учетку , у тебя пол не определён , выбрано нет , может в этом дело ? |
| Так у нас тут все автоматом "среднего рода" особенно министры ... Так что это влиять не должно, иначе программа неправильная
|
|
|
|
|
| |
Пост N: 316
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.05.21 21:15. Заголовок: Dima пишет: а пробн..
Dima пишет: цитата: | а пробни через CURL.EXE curl.exe -u LOGIN:PASS -s ftp://твойFTP -X MLSD |
| работает, но как я уже писал, я метод MLSD написал рабочий, но буду MDTM использовать SergKis пишет: точно!
|
|
|
|
| постоянный участник
|
Пост N: 3729
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.05.21 21:15. Заголовок: Дима, точно, програм..
Дима, точно, программа неправильная (тут Евро Жопа, учитывать надо), поставил пол и все кнопки вернулись.
|
|
|
|
| |
Пост N: 7369
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 21:35. Заголовок: SergKis Жесть , нап..
SergKis Жесть , написал смеха ради а оно вон как вышло то
|
|
|
|
| |
Пост N: 7370
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.05.21 21:37. Заголовок: MIKHAIL пишет: рабо..
MIKHAIL пишет: цитата: | работает, но как я уже писал, я метод MLSD написал рабочий, но буду MDTM использовать |
| я тебя понял а писал к тому что может есть смысл разобраться как собрать HBCURL под BCC и юзать его , но тебе виднее.
|
|
|
Ответов - 45
, стр:
1
2
3
All
[только новые]
|
|