![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка нового файла на ФТП [D7]
Aleksei © (2008-05-05 12:28:00)Здравствуйте!
Допустим, есть ФТП, на нём создаётся папка с названием месяца и в ней файлы. Каждые несколько часов создаются файлы. Каждый месяц папки.
Вот мне и нужно оповещение о новых файлах!!!
Мне не нужно их выводить на форму.
Нужно чтоб прога только проверяла через каждые 30 мин и говорила, что появился новый файл.
Подключение к ФТП организовал, про таймер пока что опусти.
Главное как получить и сохранить список файлов, чтоб при последующей проверке сравнить с этим списком?
Aleksei (2008-05-18 12:31:00) [1]
> Mozgan (14.05.08 14:11) [22]
> Объясню....
А зачем мне это? Я умею создавайть файл.
Мне нужно получить список всего с фтп.
А там уже буду мучатся каким способом лучше сделать сравнение списков.
Mozgan (2008-05-14 14:11:00) [2]Объясню....
procedure TForm1.Button1Click(Sender: TObject);
var
List: TStringList; //Объявляем класс
begin
list:= TStringList.Create; //создаем список
List.Add('Первая строчка'); //добавляем строки в список
List.Add('Вторая строчка');
List.Add('третья строчка');
List.Add('Четветая строчка');
List.Add('Пятая строчка');
List.SaveToFile('C:\MyList.txt'); //сохраняем список в файл
List.Free; //освобождаем
end;
Dennis I. Komarov (2008-05-13 11:30:00) [3]за 500 р. лучше не покупай - намучаешся с ней больше :)
если фтп свой пиши на него сервер который будет по запросу выдавать нужную инфу
palva (2008-05-12 23:19:00) [4]
> кто может про коментировать каждую строку (что делает).
Да любой программист может, если он знает паскаль и в состоянии прочитать документацию по Indy.
А я могу прокомментировать приведенную цитату. Комментировать пишется с двумя м.
Leonid Troyanovsky (2008-05-12 22:56:00) [5]
> Aleksei © (12.05.08 22:49) [18]
> кто может про коментировать каждую строку (что делает).
Допустим. Всего $100/час.
--
Regards, LVT.
Aleksei (2008-05-12 22:49:00) [6]кто может про коментировать каждую строку (что делает).
procedure TMainForm.ChageDir(DirName: string);
var
LS: TStringList;
begin
LS:=TStringList.Create;
try
IdFTP1.ChangeDir(DirName);
IdFTP1.TransferType:=ftASCII;
CurrentDirEdit.Text:=IdFTP1.RetrieveCurrentDir;
DirectoryListBox.Items.Clear;
IdFTP1.List(LS);
DirectoryListBox.Items.Assign(LS);
if DirectoryListBox.Items.Count>0
then
if AnsiPos('total', DirectoryListBox.Items[0])>0
then DirectoryListBox.Items.Delete(0);
finally
LS.Free;
end;
end;
procedure TMainForm.DirectoryListBoxDblClick(Sender: TObject);
var
Name: string;
begin
if not IdFTP1.Connected
then Exit;
Name:=IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName;
if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory
then ChageDir(Name)
else
begin
IdFTP1.TransferType:=ftBinary;
BytesToTransfer:=IdFTP1.Size(Name);
end
end;
procedure TMainForm.DirectoryListBoxDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
if Assigned(IdFTP1.DirectoryListing) and (IdFTP1.DirectoryListing.Count>Index)
then
begin
DirectoryListBox.Canvas.FillRect(Rect);
with IdFTP1.DirectoryListing.Items[Index] do
begin
DirectoryListBox.Canvas.TextOut(Rect.Left, Rect.Top, FileName);
end;
end;
end;
Aleksei (2008-05-10 20:42:00) [7]
> Кто же такое предлагает? Сначала надо научиться делать простые
> вещи - без затруднений придумывать структуры данных, рекурсивно
> их обрабатывать, потом можно потренироваться на директории
> локального диска, ну а потом FTP.
Это всё я уже прошёл. И перешёл на FTP, темболее для работы пригодилось бы.
Плохиш (2008-05-09 12:04:00) [8]
> Aleksei © (05.05.08 13:05) [2]
> А можно по подробней код проги
> Aleksei © (08.05.08 16:32) [11]
> Мне просто интересно самому.
Что-то эти фразы как-то между собой не совмещаются.
palva (2008-05-08 21:50:00) [9]
> Значит, предлагаешь и не пытаться?
Кто же такое предлагает? Сначала надо научиться делать простые вещи - без затруднений придумывать структуры данных, рекурсивно их обрабатывать, потом можно потренироваться на директории локального диска, ну а потом FTP.
Aleksei (2008-05-08 20:57:00) [10]
> У тебя пока уровень недостаточный для данной работы, при
> том очень недостаточный. Точнее его вообще нет.
Значит, предлагаешь и не пытаться?
Тогда можно тему закрывать. Или даже вообще удалить, она никому ничего полезного не принесёт.
Всем спасибо кто пытался помочь.
anonymouse (2008-05-08 17:01:00) [11]Удалено модератором
Примечание: Не тявкать
Anatoly Podgoretsky (2008-05-08 16:48:00) [12]> Aleksei (08.05.2008 16:32:11) [11]
У тебя пока уровень недостаточный для данной работы, при том очень недостаточный. Точнее его вообще нет.
Aleksei (2008-05-08 16:32:00) [13]
> Список строк это TStringList у него есть методы чтения и
> записи в файл
Мне предлагают эту прогу написать за 500р. Мне не денег жалко, просто это моё желание написать её. Я обходился и могу обойтись без неё.
Мне просто интересно самому.
з.ы. похоже, никто не поможет
Aleksei (2008-05-07 10:23:00) [14]
> Рекурсивно?
ДА
Без рекурсии ведь целая поэма получится.
Servy (2008-05-07 00:32:00) [15]> Как получить список всех файлов на ФТП включая и в подкаталогах?
Рекурсивно?
Aleksei (2008-05-07 00:20:00) [16]
> Список строк это TStringList у него есть методы чтения и
> записи в файл.
Блин обыскался в инете про idFTP и ничего не подходит для решения моего вопроса.
Может кто-то просветит в данном вопросе.
p.s. Как получить список всех файлов на ФТП включая и в подкаталогах?
Aleksei (2008-05-05 23:55:00) [17]
> AIK © (05.05.08 15:07) [5]
> http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19
Для ФТП это не подойдёт, только HDD.
Anatoly Podgoretsky (2008-05-05 15:15:00) [18]Список строк это TStringList у него есть методы чтения и записи в файл.
AIK (2008-05-05 15:07:00) [19]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19
Aleksei (2008-05-05 14:47:00) [20]
> А вопрос по подробнее?
Ненашёл я как оформляется List.
Мне хотяб как получить список всех файлов, даже тех что в каталогах и както их сохранить, что при последующем подключении сравнивать старый список и новый.
p.s. Я начинающий