Здрасти всем!Стоит следующая задача-
необходимо чтобы программа отслеживала изменения(по дате и времени) в экселевском файле и каждые 15 минут, если были измения отправляла его на FTP-сервер. Написать надо на Делфи, помогите пожалуйста.
Здрасти всем!Стоит следующая задача-
необходимо чтобы программа отслеживала изменения(по дате и времени) в экселевском файле и каждые 15 минут, если были измения отправляла его на FTP-сервер. Написать надо на Делфи, помогите пожалуйста.
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
1 апреля 2008 в 10:04
Человек без Имени, спасибо, но си крайне хреново понимаю)))
1 апреля 2008 в 10:04
Тогда не очень понятно, в чём смысл уточнения, что файл Экселевский?
Опередить время файла можно так:
var
fileTime
fileTime := FileDateToDateTime(FileAge('d:\fileName.xls'));
Код работы с FTP Человек Без Имени привёл (это с применением WinInet)
1 апреля 2008 в 10:04
Прошу прощения, имя файла, конечно, в кавычках должно быть.
1 апреля 2008 в 10:04
экселевский, это я для полноты восприятия задачи. А получилось, что ввёл в заблуждение. Извинияюсь)))
1 апреля 2008 в 10:04
Приведённый Сишный код практически один в один переводится в Дельфёвый, поскольку там сплошные вызовы APIшных функций.
1 апреля 2008 в 10:04
Ясно. Спасибо большое.
1 апреля 2008 в 10:04
Библиотека работы с FTP подключается строчкой uses WinInet;
1 апреля 2008 в 10:02
//www.purearea.net/pb/english/manual/filesystem...
А для отправки по фтп – делайте батники(если горит срочно такое наваять) и используйте их. Пример запуска(на сях, но с помощью API функи):
ShellExecute(hwnd,0,"C:\\Program Files\\ATM watcher\\atm_ftp01.bat",0,0,SW_SHOW);
естественно в батнике идёт обращение к стандартному виндозному фтп клиенту(вот этому: %systemroot%/system32/ftp.exe)
Если хочешь писать свой фтп-клиент, то это (надеюсь) тебе поможет:
HINTERNET ses;
HINTERNET hconnect;
char a[1024];
char c[1024];
char* lpPath;
char* KillBase(char* lpBase,char* _lpPath)
{
char a[1024];
ExtractFilePath(lpBase,a);
if (!(lstrlen(a)==(lstrlen(_lpPath))))
{
for (int i=lstrlen(a);i>0;i–)
{
_lpPath[i-1]=0;
}
return &_lpPath[lstrlen(a)];
}
else
{
return (char*)"";
}
}
main()
{
ses=InternetOpen("ftpX v.0.0.0.1",INTERNET_OPEN_TYPE_PRECONFIG,0,0,INTERNET_FLAG_ASYNC);
if(!ses)
{
MessageBox(0,"Some error on InternetOpen [step 1]","ERROR",MB_ICONERROR);
}
hconnect=InternetConnect(ses,"192.168.61.164",INTERNET_DEFAULT_FTP_PORT,"логин","пороль",INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);
if(!hconnect)
{
MessageBox(0,"Some error on InternetConnect [step 2]","ERROR",MB_ICONERROR); // можно и завершить выполнение кодеса
}
lstrcpy(a,lpszFileName);
lstrcpy(c,KillBase(lpPath,(char*)lpszFileName));
FtpPutFile(hconnect,a,c,FTP_TRANSFER_TYPE_BINARY,0);
}
1 апреля 2008 в 10:02
Александр Чигринец , дату и время последнего изменения файла(свойства).
1 апреля 2008 в 10:01
Не понятно: дату и время нужно читать из ячеек экселя или просто смотреть дату подификации Экселевского файла?