Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 16:03   #1
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
Вопрос Работа с файлами на удалённом сервере

Доброго времени суток Вам!
Есть необходимость написать следующую программку:
exe лежит на локальном компе а файл, куда надо записать информацию из программы по нажатию буттон1 (информация берется из поле ввода текста) лежит на фтп под паролем и логином.
Как это можно реализовать?
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 16:34   #2
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

используй indy компонент idftp, подключаешься и записываешь в файл
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 02.05.2009, 16:39   #3
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Спасибо большое! Но я оч мало чего знаю и не много понял....
Есть какие-то примеры?
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 16:53   #4
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

компонент устанавливает связь
FTP.Connect;

далее выполняется чтение, сравнения,
а дальше просто команда передачи или приема

FTP.PUT (...);
или
FTP.GET (...);

далее разрываем соединение..
FTP.Disconnect;

ну раз мало что знаешь так пользуйся поиском, на что он вообще нужен7 что бы мы за вас искали7
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 02.05.2009, 16:57   #5
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Ссори, но на то я и зарегестрировался, чтобы попросить о помощи у знающих людей.
Может Вы сможете мне подсказать где есть информация с примерами на эту тему?
Я-то искал, но ничего не нашёл. Может плохо искал.
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 17:11   #6
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

плохо искал, ищи лучше
http://programmersforum.ru/showthrea...&highlight=ftp
http://www.delphisources.ru/pages/so...p_cl_serv.html
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 02.05.2009, 17:25   #7
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Спасибо огромное!
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 17:31   #8
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Как-то слишком сложно все это....
Простите, стыдно, но не понимаю я....
Можно просто на нажатие кнопки Буттон1 все файлы из папки отправлялись на ФТП с заменой прежних... Там же ещё как-то авторизироваться надо...
Помогите неопытному...

За вторую тему ссори. Не знал куда писать...
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 18:02   #9
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Помогите, пожалуйста!
Вот нашёл код. Кажется то что искал. Только с ним не могу разобраться.
Куда что писать? Где из этого всего событие на кнопку?
Помогите, профи. Я совсем путаюсь...
--------------------------------------
procedure uploadperftp;
procedure getdir(dir: string);
var
searchrec: tsearchrec;
details, nodetails: tstringlist;
k: integer;
begin
//iterate through directory given
if findfirst(dir + '*.*', faanyfile, searchrec) = 0 then
begin
repeat
//get rid of the both "dummy-directories" '.' and '..'
if (searchrec.name <> '.') and (searchrec.name <> '..') then
begin
//if we found a folder
if (searchrec.attr and fadirectory) = fadirectory then
begin
//get folder contents from ftp. one with details, one without
details := tstringlist.create;
nodetails := tstringlist.create;
ftpclient.list(details, '', true);
ftpclient.list(nodetails, '', false);
//we only want to have directories in the list (without '.' and '..')
for k := details.count - 1 downto 0 do
begin
if details.strings[k] <> '' then
begin
if (details.strings[k][1] <> 'd') or
(nodetails.strings[k] = '.') or
(nodetails.strings[k] = '..') then
begin
details.delete(k);
nodetails.delete(k);
end;
end;
end;
//if our directory does not exists on the server, create it
if nodetails.indexof(searchrec.name) = -1 then
begin
ftpclient.makedir(searchrec.name);
end;

//change into next directory on server
ftpclient.changedir(searchrec.name) ;
details.free;
nodetails.free;

//and also locally go into the next subfolder
getdir(dir + searchrec.name + '');

//we have to go one directory up after leaving the recursion
hochgehen
ftpclient.changedirup;
end
else
begin
//if it's only a file, upload it to the current directory
ftpclient.put(dir + searchrec.name, searchrec.name);
end;
end;
until findnext(searchrec) <> 0;
findclose(searchrec);
end;
end;
var
dir: string;
details, nodetails: tstringlist;
k: integer;
begin
//set some basic settings on your ftp client (tidftpclient)
with ftpclient do
begin
host := 'your_server.com'; // adjust your data here / hier gwunschte daten eintragen
username := 'your_username';
// adjust your data here
password := 'your_password';
// adjust your data here
passive := true; // adjust your data here
end;
ftpclient.connect;

//if you want to upload you data to an remote-directory, enter it below (does not matter if 'dirdir' or 'dir/dir')
dir := stringreplace('your/remote_directory', '', '/', [rfreplaceall]);
// adjust your data here

//remove first '/' if there's one
if dir <> '' then
begin
if dir[1] = '/' then delete(dir, 1, 1);

//but add a '/' at the end
if dir[length(dir)] <> '/' then dir := dir + '/';

//loop through our remote-directories
while pos('/', dir) > 0 do
begin
//get folder contents from ftp. one with details, one without
details := tstringlist.create;
nodetails := tstringlist.create;
ftpclient.list(details, '', true);
ftpclient.list(nodetails, '', false);

//we only want to have directories in the list (without '.' and '..')
for k := details.count - 1 downto 0 do
begin
if details.strings[k] <> '' then
begin
if (details.strings[k][1] <> 'd') or
(nodetails.strings[k] = '.') or
(nodetails.strings[k] = '..') then
begin
details.delete(k);
nodetails.delete(k);
end;
end;
end;

//if our directory does not exists on the server, create it
if nodetails.indexof(copy(dir, 1, pos('/', dir) - 1)) = -1 then
begin
ftpclient.makedir(copy(dir, 1, pos('/', dir) - 1));
end;

//change to our directory on server
ftpclient.changedir(copy(dir, 1, pos('/', dir) - 1));

//remove first directory from path ('your/directory/subdir/' --> 'directory/subdir/')
delete(dir, 1, pos('/', dir));
details.free;
nodetails.free;
end;
end;

//ftp client is ready in your remote-directory
//begin to upload our local directory
dir := 'c:yourlocaldirectory';
// adjust your data here
if dir[length(dir)] <> '' then dir := dir + '';
getdir(dir);
ftpclient.disconnect;
end;
----------------------------------------
DenisVoronov вне форума Ответить с цитированием
Старый 02.05.2009, 18:03   #10
DenisVoronov
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 29
По умолчанию

Может что выкинуть надо отсюда?
Мне надо чтобы файлы заменялись при совпадении имен на ФТП.
DenisVoronov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
chgrp на удалённом сервере goblinyara Операционные системы общие вопросы 3 15.03.2009 18:19
Работа с файлами [MI_nor] Общие вопросы C/C++ 4 08.03.2009 17:50
Работа с Paradox таблией на сервере с помощью ADOConnect Dozent БД в Delphi 3 22.05.2008 17:56
работа с файлами С++ Rossik Общие вопросы C/C++ 1 16.05.2008 19:28