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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2013, 06:37   #1
demon-sheff
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 46
По умолчанию E2250 There is no overloaded version of 'Get' that can be called with these arguments

Доброе время суток! Я только начинаю программировать так что сильно не пинайте если эта тема уже затрагивалась. Возникла проблема при создании обновлений программы с ftp. Делаю следующим образом:
Код:
procedure TForm1.Timer2Timer(Sender: TObject);
Var
    version:WideString;
    ms:TMemoryStream;
begin
  ms:=TMemoryStream.Create;
  try
    try
      IdFTP1.Host:='10.10.100.200'; // ftp адрес сервера
      IdFTP1.Port:=21;
      IdFTP1.Username:='admin'; //логин
      IdFTP1.Password:='admin';    //Пароль
      IdFTP1.Passive:=true;
      IdFTP1.Connect; // .Connect(true);
      AssErt(IdFTP1.Connected);
     // IdFTP1.ChangeDir('/');// Установить папку на сервере
      IdFTP1.Get('Soft/update/version.ini',true);//Файл Откуда-Куда
      try
      version:=IdFTP1.Get('Soft/update/version.ini');
      if version=Label6.Caption then
      begin
        Application.MessageBox('У Вас самая новая версия программы','Внимание',MB_OK);
      end
      else
      begin
         IdFTP1.Get('Soft/update/Install.exe','c:\Install.exe',true);//Файл Откуда-Куда
      end;
    except
    on e:Exception do

    end;
end;
finally
      ms.Free; IdFTP1.Free;
    end;
  except
  ShowMessage  (‘Неудачная попытка приема файла с сервера’);
  end;
end;
Может что делаю не так? Пожскажите в чем ошибка?
demon-sheff вне форума Ответить с цитированием
Старый 16.05.2013, 07:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
IdFTP1.Get('Soft/update/version.ini',true);//Файл Откуда-Куда
Куда? вместо true там должен стоять путь "куда"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2013, 07:58   #3
demon-sheff
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 46
По умолчанию

Даже если этот код закрыть
Код:
// IdFTP1.ChangeDir('/');// Установить папку на сервере
     // IdFTP1.Get('Soft/update/version.ini',true);//Файл Откуда-Куда
      try
      version:=IdFTP1.Get('Soft/update/version.ini');
ошибка где-то здесь выделяет именно version:=IdFTP1.Get('Soft/update/version.ini');
demon-sheff вне форума Ответить с цитированием
Старый 16.05.2013, 14:46   #4
demon-sheff
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 46
По умолчанию

Попытался обойти это, получилось так:
Код:
procedure TForm1.SpeedButton3Click(Sender: TObject);
Var
    version:WideString;
    ms:TMemoryStream;
    f : TextFile;
    buf: String [80]; // буфер для чтения из файла
begin
  ms:=TMemoryStream.Create;
    try
    try
      IdFTP1.Host:='10.10.100.200'; // ftp адрес сервера
      IdFTP1.Port:=21;
     IdFTP1.Username:='admin'; //логин
      IdFTP1.Password:='admin';    //Пароль
      IdFTP1.Passive:=true;
      IdFTP1.Connect;
      AssErt(IdFTP1.Connected);
     IdFTP1.ChangeDir('/');// Установить папку на сервере
    IdFTP1.Get('Soft/update/version.txt','C:\version.txt',true);//Файл Откуда-Куда
       AssignFile(f, 'C:\version.txt');
       FileMode:=0;
      {$I-}Reset(f){$I+};
       if IOResult =0 then
          while not EOF(f) do begin
          readln(f, buf); // прочитать строку из файла
          Memo2.Lines.Add(buf); // добавить строку в поле Memo2
        end;
        finally
        CloseFile(f); // закрыть файл
        end;
      version:=(buf);                              
      if version=Label6.Caption then
      begin
        Application.MessageBox('Вы используете последнюю версию программы!','Внимание',MB_OK);
      end
      else
      begin
      If not IdFTP1.Connected then IdFTP1.Connect;
         IdFTP1.Get('Soft/update/Install.exe','c:\Install.exe',true);//Файл Откуда-Куда
      end;
      //end;
finally
      ms.Free; IdFTP1.Disconnect;
    end;
  //except
  ShowMessage  ('Неудачная попытка приема файла с сервера');
  end;
Сразу говорю, что файл существует C:\version.txt и не только для чтения, но теперь проблема встала в следующем выдает ошибку I/O error 103 почитал говорят что связано с CloseFile(f); по крайней мере туда возвращает после ошибки. Что делать уже всю голову сломал
demon-sheff вне форума Ответить с цитированием
Старый 17.05.2013, 08:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.Timer2Timer(Sender: TObject);
Var
    version:WideString;
    ms:TMemoryStream;
begin
  ms:=TMemoryStream.Create;
  try
    try
      IdFTP1.Host:='10.10.100.200'; // ftp адрес сервера
      IdFTP1.Port:=21;
      IdFTP1.Username:='admin'; //логин
      IdFTP1.Password:='admin';    //Пароль
      IdFTP1.Passive:=true;
      IdFTP1.Connect; // .Connect(true);
      AssErt(IdFTP1.Connected);
     // IdFTP1.ChangeDir('/');// Установить папку на сервере
      IdFTP1.Get('Soft/update/version.ini',true);//Файл Откуда-Куда
      try
      version:=IdFTP1.Get('Soft/update/version.ini');
      if version=Label6.Caption then
      begin
        Application.MessageBox('У Вас самая новая версия программы','Внимание',MB_OK);
      end
      else
      begin
         IdFTP1.Get('Soft/update/version.txt','C:\version.txt',true);//Файл Откуда-Куда
      end;
    except
    on e:Exception do

    end;
end;
finally
      ms.Free; IdFTP1.Free;
    end;
  except
  ShowMessage  (‘Неудачная попытка приема файла с сервера’);
  end;
end;
Все. Больше ничего не нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.05.2013, 08:46   #6
demon-sheff
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 46
По умолчанию

Я сделал так:
Код:
procedure TForm1.SpeedButton3Click(Sender: TObject);
Var
    version,ver:WideString;
    ms:TMemoryStream;
    zap:byte;
begin
      IdFTP1.Host:='10.10.100.200'; // ftp адрес сервера
      IdFTP1.Port:=21;
     IdFTP1.Username:='admin'; //логин
      IdFTP1.Password:='admin';    //Пароль
      IdFTP1.Passive:=true;
     if IdFTP1.Connected then
IdFTP1.Disconnect
else
try
      IdFTP1.Connect;
      except
      on E:Exception do
      ShowMessage('Ошибка подключения: '+E.Message);
      end;
      if IdFTP1.Connected then
       try
     IdFTP1.ChangeDir('/');// Установить папку на сервере
    IdFTP1.Get('Soft/update/version.ini','C:/Soft/log/version.ini',true);//Файл Откуда-Куда
     IdFTP1.Get('Soft/update/Install.exe','C:/Soft/log/Install.exe',true);//Файл Откуда-Куда
     Memo2.Lines.LoadFromFile('C:/Soft/log/version.ini');
      version:=Memo2.Text;
      ver:= Edit2.Text;
    except
    on E:Exception do
      if version<>ver then
      begin
        Application.MessageBox('Вы используете последнюю версию программы!','Внимание',MB_OK);
      end
      else
      begin
      zap:=WinExec('C:/Soft/log/Install.exe',SW_Restore);
         end;
end;
      ms.Free; IdFTP1.Disconnect;
    end;
так все заработало, только вот не могу сравнить значения version и ver для дальнейшего запуска обновленного инсталяционного пакета

Последний раз редактировалось demon-sheff; 17.05.2013 в 11:08.
demon-sheff вне форума Ответить с цитированием
Старый 20.05.2013, 09:12   #7
demon-sheff
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 46
По умолчанию

Все тему можно закрывать. Разобрался. Спасибо!
demon-sheff вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка operator is not overloaded vavrenyuka Паскаль, Turbo Pascal, PascalABC.NET 18 03.04.2013 21:35
too few arguments to .Как правильно исправить ? lisica198808 Помощь студентам 1 17.03.2013 03:32
Почему ошибка? [DCC Error] main.pas(99): E2250 There is no overloaded version of 'StringReplace' ... TwiX Общие вопросы Delphi 5 19.11.2009 03:25