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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2014, 17:18   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию get запрос

Сегодня утром столкнулся с проблемой!Очень не приятной для меня)В общем моя программа берет данные с тхт файла таким запросом:
Код:
sl:= TStringList.Create;

    sl.Text:= idhttp1.Get('http://blabla/1.txt');

    for i:= 0 to sl.Count-1 {??? ??????? ????, ????. 5} do
   (FindComponent('Edit' + IntToStr(i+1)) as TEdit).Text:= sl[i];
 sl.Free;
Так вот сегодня у моего хостера возникли проблемы и мой хостинг откл.
И сразу при запуске выходит сообщение "socket error 11001" - не возможно подключится к хосту!Вопрос как сделать "Если http://blabla/1.txt' не доступен то берем данные с http://blabla2/1.txt" и еще одно как заглушить все сообщения об ошибках.
И еще))))) Допустим если значение в едит равно 500 то ...

Последний раз редактировалось mitiay; 09.08.2014 в 17:20.
mitiay вне форума Ответить с цитированием
Старый 09.08.2014, 18:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
const blabla:array[1..2] of string=('blabla','blabla2'); s:string;
var k:integer;
...
s:='';
k:=Low(blabla);
while k<Length(blabla) do
 try
  s:= idhttp1.Get('http://'+blabla[k]+'/1.txt');
  break;
 except
  inc(k);
 end;

if s='' then begin
 ShowMessage('Нигде не пускают');
 exit;
end;

sl:= TStringList.Create;

    sl.Text:=s;

    for i:= 0 to sl.Count-1 {??? ??????? ????, ????. 5} do
   (FindComponent('Edit' + IntToStr(i+1)) as TEdit).Text:= sl[i];
 sl.Free;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.08.2014, 18:18   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
const blabla:array[1..2] of string=('blabla','blabla2'); s:string;
var k:integer;
...
s:='';
k:=Low(blabla);
while k<Length(blabla) do
 try
  s:= idhttp1.Get('http://'+blabla[k]+'/1.txt');
  break;
 except
  inc(k);
 end;

if s='' then begin
 ShowMessage('Нигде не пускают');
 exit;
end;

sl:= TStringList.Create;

    sl.Text:=s;

    for i:= 0 to sl.Count-1 {??? ??????? ????, ????. 5} do
   (FindComponent('Edit' + IntToStr(i+1)) as TEdit).Text:= sl[i];
 sl.Free;
спасибо огромное!подскажите как быть с едитом и ошибками
mitiay вне форума Ответить с цитированием
Старый 09.08.2014, 19:22   #4
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от mitiay Посмотреть сообщение
спасибо огромное!подскажите как быть с едитом и ошибками
Не очень понятно. Блок try except как раз глушит все сообщения об ошибках. Другое дело, что сама IDE может всё еще о них сообщать (когда программа запущена под отладчиком), это лечится настройками - можно ткнуть галочку ignore this exception type, когда покажет ошибку.
С едитом тоже непонятно, вроде правильно же написали. Так и будет:
Код:
if (edit.text = '500') then begin
    ...
end;
Если в edit задумано вводить только числа, то перекидываем ему NumbersOnly. Если не только числа, то не забываем про Trim и ToLower\ToUpper.
StriderX вне форума Ответить с цитированием
Старый 09.08.2014, 22:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
это лечится настройками - можно ткнуть галочку ignore this exception type, когда покажет ошибку.
Нененене!! Не рекомендую. А то потом ошибка вылезет, try не будет, и IDE ниче не скажет. И будет программист сидеть у окна и думать что же произошло.
Просто нужно запускать экзешник не в режиме отладки - в Делфи в ХЕ есть для этого кнопуля.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.08.2014, 23:47   #6
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
const blabla:array[1..2] of string=('blabla','blabla2'); s:string;
var k:integer;
...
s:='';
k:=Low(blabla);
while k<Length(blabla) do
 try
  s:= idhttp1.Get('http://'+blabla[k]+'/1.txt');
  break;
 except
  inc(k);
 end;

if s='' then begin
 ShowMessage('Нигде не пускают');
 exit;
end;

sl:= TStringList.Create;

    sl.Text:=s;

    for i:= 0 to sl.Count-1 {??? ??????? ????, ????. 5} do
   (FindComponent('Edit' + IntToStr(i+1)) as TEdit).Text:= sl[i];
 sl.Free;
как я понимаю blabla[k] если blabla не валид то присваивается цифра?а допустим если второй домен будет не blabla а yhoho то работать уже не будет?
mitiay вне форума Ответить с цитированием
Старый 10.08.2014, 00:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то присваивается цифра?
Куда присваивается?
Тут пример перебора сайтов. Один не отвечает - идем на другой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.08.2014, 00:04   #8
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Куда присваивается?
Тут пример перебора сайтов. Один не отвечает - идем на другой.
Можно еще ворос?)Вот мне нужно спрятать часть кода(зашифровать)
допустим
edit1.text:='2222';
Чтоб в место такого открытого текста было что то типо
%22%dd%33%
Такое вообще возможно?
mitiay вне форума Ответить с цитированием
Старый 10.08.2014, 00:28   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что то типо
А точнее? Перевести в URI строку? Этим, к примеру, занимается функция URLEncode компонента IdURI.
Или о каком шифровании речь?

P.S. Я баиньки, всем гуднайт...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.08.2014, 09:41   #10
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от mitiay Посмотреть сообщение
Так вот сегодня у моего хостера возникли проблемы и мой хостинг откл.
И сразу при запуске выходит сообщение "socket error 11001" - не возможно подключится к хосту!
Что значит отключили? Если он платный то заплати за него. А вообще можно было бы использовать и бесплатный. А так, это ошибка говорит о том, что твоего хоста просто нет в сети.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
sq запрос viperrr Помощь студентам 9 05.06.2009 02:00
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50