![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет! Я новичок в программировании. Хочу написать свой фтп многопоточный заливщик через соксы 4/5. Подскажите с какими функциями надо разобраться и какая литература больше подходит для решения этой задачи? И если есть примеры!!
|
|
#2
|
|||
|
|||
|
У кого достаточно опыта в этом деле или хоть есть какие нить решения задачи буду рад вашей помощи!
1. загрузил в поле мемо1 из файла, список соксов вида ип:порт 2. загрузил в поле мемо2 из файла, список заданий вида фтп,логин,пароль,папка на компе с файлами, папка на фтп куда заливать 3. 2а edit поля. В одном кол-во заданий в другом количество потоков для задания. Вопрос как мне сделать, что бы по нажатию на батон программа брала первый сокс и задание и пыталась залить фаил. Как то так. Какие идеи? |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
|||
|
|||
|
Цитата:
Можно примеры? сейчас пытаюсь разобраться как реализовать через indy |
|
#5
|
|||
|
|||
|
Разобрался как передать фаил с помощью indy. А как передать всю папку со всеми файлами каталогами и подкаталогами?
|
|
#6
|
||||
|
||||
|
ну так:
procedure MakeDir(const ADirName: string); сканируешь локальную папку, создаешь удаленные папки и копируешь в них файлы, рекурсивно. |
|
#7
|
|||
|
|||
|
Цитата:
PHP код:
Т.е. я получил список файлов в папке, подпапке. Теперь надо как-то передать все это, так что бы подпапки создавались на фтп и заливались файлы туда. Только что читал про рекурсию, разбираюсь. Но заглядывая вперед, как мне можно хранить список файлов для многозадачной передачи? Изначально же не известно сколько необходимо выполнять задач. Я веду к тому что в примере файлы выводятся в ListBox. А в много задачной нужно будет и 100 одновременно сканировать папок и получать список. А потом отдавать их на передачу по фтп. Тогда необходимо создавать фаил со список путей файлов? И сколько задач столько и файлов и уже из файлов тягать пути и отдавать на передачу или есть более толковый способ? Последний раз редактировалось ujanin, 09.09.2011 в 11:39. |
|
#8
|
|||
|
|||
|
Подскажите как записать в фаил все строки вместо listbox
PHP код:
Процедура ScanDir написана так что, хранилище для резульатат, любой наследник от TString. Как мне необходимо ее переделать, что бы хранилище можно было использовать фаил? |
|
#9
|
|||
|
|||
|
У меня есть строка: 1,2,3,4,5 как мне из нее взять 5? Не пойму как взять с помощью функции copy, если номер первого символа с которого начинается нужная подстрока перед этим повторяется не раз, а именно ",". Но я знаю точно, что после 4й запятой нужная подстрока.
|
|
#10
|
|||
|
|||
|
удалено 10 символов
Последний раз редактировалось ujanin, 09.09.2011 в 18:45. |
|
#11
|
|||
|
|||
|
Цитата:
PosEx не пробовал? А вообще, не "простая" ли задачка для начинающего. И вообще, не с той стороны подходишь к задаче. Например, подумай, что скажет сервер, если на него с одного адреса будет открыто 1000 соединений и будет заливаться 1000 файлов? А если файлов больше? Короче, знаний для нормального решения такой задачи тебе все-равно сейчас не хватает. Садись разбирайся с пулами потоков или с очередями. |
|
#12
|
||||
|
||||
|
Может это тебе поможет:
Код:
function ParseStr(S, SubStr: String; Index: Integer): String;
var
i: Integer;
BlockStr: String;
begin
if (S = '') or (SubStr = '') then Exit;
if Length(S) < Length(SubStr) then Exit;
if Copy(S, Length(S) - Length(SubStr), Length(SubStr)) <> SubStr then
S := S + SubStr;
for i := 1 to Index do
begin
BlockStr := Copy(S, 0, Pos(SubStr, S) - 1);
S := Copy(S, Pos(SubStr, S) + Length(SubStr), Length(S));
end;
Result := Trim(BlockStr);
end; |
|
#13
|
||||
|
||||
|
Цитата:
PHP код:
Цитата:
Цитата:
Цитата:
![]() |
|
#14
|
|||
|
|||
|
Цитата:
Спасибо конечно. Но можно добавить комментарии? |
|
#15
|
||||
|
||||
|
Ну уж если к такому коду комментарии писать, то однозначно - за учебники.
|