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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2017, 14:09   #1
Vlad97A
Новичок
Джуниор
 
Регистрация: 16.06.2017
Сообщений: 5
По умолчанию File not found: 'IdIOHandlerStack.dcu' - Delphi

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, StdCtrls, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL, IdSocks,
IdCookieManager, IdIOHandlerStack, IdSSL;

type
TForm1 = class(TForm)
Button: TButton;
Memo1: TMemo;
IdHTTP1: TIdHTTP;
Button21: TButton;
Label1: TLabel;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
IdCookieManager1: TIdCookieManager;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure ButtonClick(Sender: TObject);
procedure Button21Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function Pars(T_, ForS, _T: string): string;
var
a, b: integer;
begin
Result := '';
if (T_ = '') or (ForS = '') or (_T = '') then
Exit;
a := Pos(T_, ForS);
if a = 0 then
Exit
else
a := a + Length(T_);
ForS := Copy(ForS, a, Length(ForS) - a + 1);
b := Pos(_T, ForS);
if b > 0 then
Result := Copy(ForS, 1, b - 1);
end;

procedure TForm1.ButtonClick(Sender: TObject);
var
MemStre: TStringStream;
begin
MemStre := TStringStream.Create('');
IdHTTP1.Request.Host:='yandex.ru';
IdHTTP1.Request.Connection:='keep-alive';
IdHTTP1.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36';
IdHTTP1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
IdHTTP1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
IdHTTP1.Get('https://yandex.ru/');
IdHTTP1.Get('https://yandex.ru/pogoda/moscow', MemStre);
MemStre.Position := 0;
Memo1.Text:=UTF8toANSI(MemStre.Data String);
Button21.Click;
end;

procedure TForm1.Button21Click(Sender: TObject);
var tag,tnow,Cels:integer;//переменные для поиска
wether:string;//переменная в которой будет содержаться строка с температурой
begin
label4.caption:='Восход: '+pars('<span class="current-weather__info-label">Восход: </span>', Memo1.Text, '<span' )+' Закат: '+pars('<span class="current-weather__info-label current-weather__info-label_type_sunset">Закат: </span>', Memo1.Text, '</div>' );
label1.caption:='Температура: '+pars('<div class="current-weather__thermometer current-weather__thermometer_type_now">', Memo1.Text, '</div>' );
label2.caption:=pars('<abbr class=" icon-abbr" title="', Memo1.Text, '">' )+' '+pars('<span class="wind-speed">', Memo1.Text, '</span>' );
label3.caption:='Влажность: '+pars('<span class="current-weather__info-label">Влажность: </span>', Memo1.Text, '</div>' );
{
Tag:=Pos('<div class="current-weather__thermometer current-weather__thermometer_type_now">', Memo1.Text);//ищем вхождение строки с температурой в нашем memo
if Tag>0 then wether:=Copy(Memo1.Text,Tag,40);//копируем строку <div class="b-thermometer__now">0 °C</div> в переменную
tnow:=pos('>',wether);//этими двумя строками мы определяем с какого по какой символ переменной
cels:=pos('°C',wether);//копировать погоду. От знака '>' до "°C"
if tnow>0 then label1.caption:=copy(wether,tnow+1, cels-tnow+1);//копируем данные из нашей переменной }
end;

end.
Вот есть скомпилированный код. При другой компиляции выдает ошибку:
[Fatal Error] Unit1.pas(9): File not found: 'IdIOHandlerStack.dcu'
Чего не хватает?
Vlad97A вне форума Ответить с цитированием
Старый 16.06.2017, 14:26   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Файла IdIOHandlerStack.dcu
p51x вне форума Ответить с цитированием
Старый 16.06.2017, 14:33   #3
Vlad97A
Новичок
Джуниор
 
Регистрация: 16.06.2017
Сообщений: 5
По умолчанию

А где он должен быть и где его взять?
Vlad97A вне форума Ответить с цитированием
Старый 16.06.2017, 14:56   #4
Vlad97A
Новичок
Джуниор
 
Регистрация: 16.06.2017
Сообщений: 5
По умолчанию

Как его получить?
Vlad97A вне форума Ответить с цитированием
Старый 16.06.2017, 15:09   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

должен быть установлен компонент INDY
(насколько я понимаю, IdIOHandlerSocket входит в состав этого пакета)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2017, 15:13   #6
Vlad97A
Новичок
Джуниор
 
Регистрация: 16.06.2017
Сообщений: 5
По умолчанию

Indy 9 установлен
Vlad97A вне форума Ответить с цитированием
Старый 16.06.2017, 15:16   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вообще-то это часть Инди, переустанавливайте.
p51x вне форума Ответить с цитированием
Старый 16.06.2017, 15:21   #8
Vlad97A
Новичок
Джуниор
 
Регистрация: 16.06.2017
Сообщений: 5
По умолчанию

Переустановил с indy 9, пару часов назад
Vlad97A вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите как довести эту ошибку в Delphi 7,[Fatal Error] DBTables.pas(17):File not found : 'BDE.dcu'? Vasyatko00019 БД в Delphi 2 09.12.2014 10:11
File not found '*.dcu' (делфи) NewLamer&Programer Помощь студентам 1 11.01.2013 18:50
File not found: 'DBAdvEd.dcu' fezilk24 Общие вопросы Delphi 2 16.06.2010 07:24
Выдается ошибка: File not found 'Animat.dcu' Alpher Компоненты Delphi 4 24.03.2009 12:52
ошибка!File not found: 'mySQLDbTables.dcu' Алёна Общие вопросы Delphi 6 05.12.2007 01:34