Вверх ↑
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 131
#31: 2013-11-06 23:27:23 ЛС | профиль | цитата
Делается так, чтобы на все случаи подходило:

замена правого переднего рычага и левой задней ноги.

Или

стучит в правом переднем рычаге


1. Ищем любой глагол - маска "2". По хорошему надо бы запомнить в отдельной таблице все глаголы.
Потом доставать их от туда по очереди.
2. Заполняем две таблици строк, в одну (таб1.) записываем все существительные, а в другую все остальные (таб2.), которые принадлежат глаголу.
3. Достаём из таблици (таб2.) номера всех остальных и записываем все существительные принадлежащие им в (таб1.)
4. Смотрим, какие прилагательные связаны с этими существительными из таб1 и выводим их на печать.
В качестве таблиц лучше применить очередь или стек, очередь лучше.
Схему наверное делать не буду, лучше сделаю компонент - трассировщик.
------------ Дoбавленo в 23.27:
Вот, практически ничего не переделывал.
Поменял последовательность соединений и добавил пару элементов.

Make(delphi)
ver(4.04 build 185)
Add(MainForm,2953706,77,112)
{
Width=529
Height=404
link(onCreate,945197:doSetLanguage,[(314,132)(314,167)])
}
Add(ListBox,5543210,84,168)
{
Left=5
Top=10
Width=505
Height=160
Strings=#32:стучит в правом переднем рычаге.|77:Тем более поразительной среди всего этого хаоса казалась тонкая прямая линия.|52:замена правого переднего рычага и левой задней ноги.|31:стучит в правом переднем рычаге|61:Из темноты раздавались странные крики, шорохи и встряхивание.|
DataType=1
link(onClick,7948982:doEvent1,[])
}
Add(ListBox,8311011,772,375)
{
Left=245
Top=180
Width=265
Height=185
}
Add(Hub,7948982,133,175)
{
OutCount=4
link(onEvent1,8311011:doClear,[(459,181)(459,388)])
link(onEvent2,945197:doSetText,[(238,188)(238,174)])
link(onEvent3,945197:doNumOffer,[(238,195)(238,188)])
link(onEvent4,8871095:doFor,[(238,202)(238,391)])
}
Add(Morphology,945197,329,161)
{
link(onNumWord,13033453:doEvent1,[(502,181)(502,328)])
link(onNumWordConnect,9178194:doCompare,[(443,195)(443,398)])
link(Mode,14131824:Value,[])
}
Add(For,8871095,329,385)
{
link(onEvent,12198169:doCompare,[(394,391)(394,216)])
link(End,945197:Count_Words,[])
}
Add(ComparisonAttributes,12198169,483,210)
{
Mode=2
Mask="1"
Point(Mask)
link(onTrue,3339762:doEvent1,[])
}
Add(For,14952044,546,343)
{
link(onEvent,945197:doIConnect,[(585,349)(585,276)(308,276)(308,223)])
link(End,945197:Count_Connect,[(559,257)(363,257)])
}
Add(ComparisonAttributes,9178194,455,392)
{
Mode=2
Mask="3"
link(onTrue,1144356:doEvent1,[(499,405)(499,391)])
}
Add(PointHint,11649182,161,98)
{
Info=#17:Загружает словарь|
Frame=1
Width=120
}
Add(PointHint,286333,161,140)
{
Info=#14:Входная строка|
Frame=1
Width=120
}
Add(PointHint,2591212,168,196)
{
Info=#18:Обязательно нужно!|16:Заполняет массив|15:адресами слов в|18:данном предложении|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,7872888,84,399)
{
Info=#37:Запускаем перебор слов в предложении.|
Frame=1
Width=225
}
Add(PointHint,8019754,448,126)
{
Info=#34:Сравниваем все слова в предложении|38:с маской (форма) и находим его индекс.|
Frame=1
VAlign=0
Width=211
}
Add(PointHint,7064423,168,266)
{
Info=#21:В точку doGetConnect |19:подаём индекс слова|18:для которого будем|13:искать связи.|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,8019867,266,462)
{
Info=#44:Сравниваем все связи с маской (морф-атрибут)|21:и получаем их индекс.|40:По этому индексу выводим слова в таблицу|34:через точки doNumWord и onNumWord.|
Frame=1
VAlign=0
HAlign=0
Width=253
Height=81
}
Add(PointHint,9197259,707,203)
{
Info=#25:Перебор всех связей слова|23:через точку doIConnect.|
Frame=1
VAlign=0
HAlign=0
Width=148
}
Add(Memory,14131824,357,91)
{
Default=Integer(1)
}
Add(Hub,3339762,539,217)
{
OutCount=4
link(onEvent1,12787019:doEvent1,[(565,223)(565,269)(436,269)(436,314)])
link(onEvent2,10042208:doSig1,[(577,230)(577,384)])
link(onEvent3,945197:doGetConnect,[(565,237)(565,227)(317,227)(317,216)])
link(onEvent4,14952044:doFor,[(565,244)(565,296)(534,296)(534,349)])
}
Add(Hub,12787019,448,308)
{
InCount=2
OutCount=1
link(onEvent1,945197:doNumWord,[(474,314)(474,254)(317,254)(317,195)])
}
Add(Hub,1144356,511,385)
{
OutCount=3
link(onEvent1,10042208:doSig2,[])
link(onEvent2,12787019:doEvent2,[(537,398)(537,360)(436,360)(436,321)])
link(onEvent3,3272941:doSig1,[(585,405)(585,447)])
}
Add(Memory,12220201,700,301)
{
}
Add(DoData,13794249,700,378)
{
link(onEventData,14504508:doWork2,[(741,384)(741,381)(741,381)])
link(Data,10322672:Var2,[])
}
Add(Andlogic,10042208,602,378)
{
link(onIYes,13794249:doData,[])
}
Add(Hub,13033453,623,322)
{
link(onEvent1,12220201:doValue,[(669,328)(669,307)])
link(onEvent2,3272941:doSig2,[(641,335)(641,454)])
}
Add(Andlogic,3272941,644,441)
{
link(onIYes,2880873:doData,[])
}
Add(DoData,2880873,693,441)
{
link(onEventData,14504508:doWork3,[(753,447)])
link(Data,10322672:Var1,[(699,341)])
}
Add(HubEx,14504508,749,375)
{
link(onEvent,8311011:doAdd,[])
}
Add(GetDataEx,10322672,700,336)
{
link(Data,12220201:Value,[])
}


карма: 6

0
Ответов: 257
Рейтинг: -2
#32: 2013-11-06 23:42:56 ЛС | профиль | цитата
при нажатии на строку - runtime error(
карма: 0

0
Ответов: 2059
Рейтинг: 131
#33: 2013-11-07 00:33:39 ЛС | профиль | цитата
Элемент Andlogic в других схемах работает?
Ну, да ладно. Это всё равно не выход, но принцип в последней схеме правильный.
карма: 6

0
Ответов: 257
Рейтинг: -2
#34: 2013-11-07 00:35:17 ЛС | профиль | цитата
работает, есть он у меня
карма: 0

0
Ответов: 2059
Рейтинг: 131
#35: 2013-11-07 00:59:56 ЛС | профиль | цитата
Даже не знаю что думать.
Попробуй dll и папку Data кинуть в корень Hiasm.
карма: 6

0
Ответов: 257
Рейтинг: -2
#36: 2013-11-07 01:46:02 ЛС | профиль | цитата
я проект прямо в папке с компонентом создаю. Какой компилятор используете? Нужно чтоб Delphi был. Я как только те схемы что в примерах компилирую - вылазит сразу ошибка.
------------ Дoбавленo в 01.46:
ошибка пропадает если убрать связь с точки "индекс предложения в строке"
карма: 0

0
Ответов: 2059
Рейтинг: 131
#37: 2013-11-07 14:03:22 ЛС | профиль | цитата
code_32271.txt
У меня на всех компиляторах работает(4 и 7).
Похоже, что не то что надо читает. Попробуй эту.
P.S.
Когда схему копируешь, ставь кодировку юникод UTF-8.
------------ Дoбавленo в 14.03:
Вроде получилось.

Make(delphi)
ver(4.04 build 185)
Add(MainForm,1650821,84,154)
{
Width=529
Height=404
link(onCreate,945197:doSetLanguage,[(321,174)(321,209)])
}
Add(ListBox,5543210,91,210)
{
Left=5
Top=10
Width=505
Height=160
Strings=#32:стучит в правом переднем рычаге.|77:Тем более поразительной среди всего этого хаоса казалась тонкая прямая линия.|52:замена правого переднего рычага и левой задней ноги.|31:стучит в правом переднем рычаге|61:Из темноты раздавались странные крики, шорохи и встряхивание.|
DataType=1
link(onClick,7948982:doEvent1,[])
}
Add(ListBox,8311011,828,417)
{
Left=245
Top=180
Width=265
Height=185
}
Add(Hub,7948982,140,217)
{
OutCount=4
link(onEvent1,8311011:doClear,[(466,223)(466,430)])
link(onEvent2,945197:doSetText,[(245,230)(245,216)])
link(onEvent3,945197:doNumOffer,[(245,237)(245,230)])
link(onEvent4,8871095:doFor,[(245,244)(245,433)])
}
Add(Morphology,945197,336,203)
{
link(onNumWord,12220201:doValue,[(548,223)(548,349)])
link(onNumWordConnect,9178194:doCompare,[(425,237)(425,440)])
link(NumOffer,10125215:Value,[(349,167)(321,167)])
link(Mode,14131824:Value,[])
}
Add(For,8871095,336,427)
{
link(onEvent,12198169:doCompare,[(401,433)(401,258)])
link(End,945197:Count_Words,[])
}
Add(ComparisonAttributes,12198169,490,252)
{
Mode=2
Mask="1"
Point(Mask)
link(onTrue,3339762:doEvent1,[])
}
Add(For,14952044,553,385)
{
link(onEvent,945197:doIConnect,[(597,391)(597,328)(324,328)(324,265)])
link(onStop,14114462:doReset,[(643,398)(643,335)])
link(End,945197:Count_Connect,[(566,299)(370,299)])
}
Add(ComparisonAttributes,9178194,462,434)
{
Mode=2
Mask="3"
link(onTrue,16547076:doEvent1,[])
}
Add(PointHint,11649182,168,140)
{
Info=#17:Загружает словарь|
Frame=1
Width=120
}
Add(PointHint,286333,168,182)
{
Info=#14:Входная строка|
Frame=1
Width=120
}
Add(PointHint,2591212,168,266)
{
Info=#18:Обязательно нужно!|16:Заполняет массив|15:адресами слов в|18:данном предложении|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,7872888,91,441)
{
Info=#37:Запускаем перебор слов в предложении.|
Frame=1
Width=225
}
Add(PointHint,8019754,455,168)
{
Info=#34:Сравниваем все слова в предложении|38:с маской (форма) и находим его индекс.|
Frame=1
VAlign=0
Width=211
}
Add(PointHint,7064423,154,336)
{
Info=#21:В точку doGetConnect |19:подаём индекс слова|18:для которого будем|13:искать связи.|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,8019867,273,504)
{
Info=#44:Сравниваем все связи с маской (морф-атрибут)|21:и получаем их индекс.|40:По этому индексу выводим слова в таблицу|34:через точки doNumWord и onNumWord.|
Frame=1
VAlign=0
HAlign=0
Width=253
Height=81
}
Add(PointHint,9197259,714,245)
{
Info=#25:Перебор всех связей слова|23:через точку doIConnect.|
Frame=1
VAlign=0
HAlign=0
Width=148
}
Add(Memory,14131824,364,133)
{
Default=Integer(1)
}
Add(Hub,3339762,546,259)
{
OutCount=3
link(onEvent1,12787019:doEvent1,[(595,265)(595,311)(443,311)(443,356)])
link(onEvent2,945197:doGetConnect,[(612,272)(612,316)(324,316)(324,258)])
link(onEvent3,14952044:doFor,[(572,279)(572,335)(541,335)(541,391)])
}
Add(Memory,12220201,756,343)
{
}
Add(DoData,13794249,756,413)
{
link(onEventData,8101017:doWork2,[(797,419)(797,423)])
link(Data,8241610:Var2,[])
}
Add(Memory,10125215,315,119)
{
Default=Integer(0)
}
Add(Hub,16547076,532,441)
{
OutCount=3
link(onEvent1,3796868:doEvent1,[(602,447)(602,377)])
link(onEvent2,12787019:doEvent2,[(558,454)(558,408)(443,408)(443,363)])
link(onEvent3,5516962:doData,[(630,461)(630,454)])
}
Add(Hub,12787019,455,350)
{
InCount=2
OutCount=1
link(onEvent1,945197:doNumWord,[(481,356)(481,290)(314,290)(314,237)])
}
Add(DoData,5516962,714,448)
{
link(onEventData,8101017:doWork3,[(809,454)])
link(Data,8241610:Var1,[(720,390)])
}
Add(GetDataEx,8241610,756,385)
{
link(Data,12220201:Value,[])
}
Add(HubEx,8101017,805,417)
{
link(onEvent,8311011:doAdd,[])
}
Add(Hub,3796868,658,371)
{
link(onEvent1,14114462:doNext,[(681,377)(681,321)])
link(onEvent2,12053565:doEvent1,[(686,384)(686,370)])
}
Add(Counter,14114462,700,315)
{
}
Add(Commutator,12053565,700,364)
{
link(Index,14114462:Count,[])
link(onEvent2,13794249:doData,[(744,377)(744,419)])
}
карма: 6

0
файлы: 1code_32271.txt [4.8KB] [508]
Гость
Ответов: 17029
Рейтинг: 0
#38: 2013-11-07 23:36:29 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-06-22 14:19:28
карма: 0

0
Ответов: 257
Рейтинг: -2
#39: 2013-11-07 23:38:45 ЛС | профиль | цитата
вот так без 2х связей ошибку не выдает, ну и схема естественно не работает
code_32273.txt
карма: 0

0
файлы: 1code_32273.txt [4.5KB] [513]
Ответов: 2059
Рейтинг: 131
#40: 2013-11-08 11:15:35 ЛС | профиль | цитата
Я не могу смоделировать ситуацию, чтобы не работало.
У меня стоит XP, может в этом дело?
Надо попробовать так:
http://forum.hiasm.com/forum_serv.php?q=56&id=3628
1. Если не работают оба, то надо думать.
2. Если работают оба, то надо обновить компонент.
3. Если работает MorfProject4.exe, то надо заменить код компонента hiMorphology.pas

unit hiMorphology;

interface

uses Kol,Share,Debug;

type
THIMorphology = class(TDebug)
private
// FIndex:integer;
// FString:string;
public
//da_word : array of integer;
_prop_Path:String;
_data_Path:THI_Event;
_prop_Language:Integer;
_data_Language: THI_Event;
_data_Str: THI_Event;
_data_NumOffer: THI_Event;
_data_NumWord: THI_Event;
_data_NumSyntax: THI_Event;
_data_Mode: THI_Event;
_data_GetConnect: THI_Event;
_data_IConnect: THI_Event;
_event_onParse:THI_Event;
_event_onTranslate:THI_Event;
_event_onNumWord:THI_Event;
_event_onNumSyntax:THI_Event;
_event_onNumWordConnect:THI_Event;
Procedure _work_doSetLanguage(var _Data:TData; Index:Word);
Procedure _work_doSetText(var _Data:TData; Index:Word);
Procedure _work_doTranslate(var _Data:TData; Index:Word);
Procedure _work_doNumOffer(var _Data:TData; Index:Word);
Procedure _work_doNumWord(var _Data:TData; Index:Word);
Procedure _work_doNumSyntax(var _Data:TData; Index:Word);
Procedure _work_doClose(var _Data:TData; Index:Word);
Procedure _work_doGetConnect(var _Data:TData; Index:Word);
Procedure _work_doIConnect(var _Data:TData; Index:Word);
procedure _var_Count_offers(var _Data:TData; Index:word);
procedure _var_Count_Words(var _Data:TData; Index:word);
procedure _var_Count_syntax(var _Data:TData; Index:word);
procedure _var_Text_offer(var _Data:TData; Index:word);
procedure _var_Count_Connect(var _Data:TData; Index:word);
procedure _var_Connchr(var _Data:TData; Index:word);
end;

// procedure SetParam()stdcall; external 'dwf.dll' name 'wrfSetParam';
function Open(Path,Lan:String):Integer;CDECL; external 'dwf.dll' name 'wrfOpen';
function Parses(HEEPMORF:Integer;Str:String):Integer;CDECL; external 'dwf.dll' name 'wrfParse';
procedure Translate(HEEPMORF:Integer) CDECL; external 'dwf.dll' name 'wrfTranslate';
function GetSentence(HEEPMORF:Integer):Integer;CDECL; external 'dwf.dll' name 'wrfGetSentence';
function Close(HEEPMORF:Integer):Integer;CDECL; external 'dwf.dll' name 'wrfClose';
var da_word : array of integer;
implementation

var
Path,Lan,Str:String;
temstring:Pchar;
GetConnect,IConnchr,IConn,i,sumconn,Synt,words,offer,Pars,HEEPMORF,result,Language:Integer;
da_offer : array of integer;
// da_word : array of integer;
da_syntax : array of integer;
a_Connect : array[0..50] of integer;
a_Connchr : array[0..50] of char;
procedure THIMorphology._work_doSetLanguage;
begin
result:= ReadInteger(_Data,_data_Language,_prop_Language);
Path:= ReadString(_Data,_data_Path,_prop_Path);
if result=0 then Lan:='re' else Lan:='er' ;
HEEPMORF:=Open(Path,Lan);
end;

procedure THIMorphology._work_doSetText;
var
Parss,Pars2,ind,offeri:Integer;
begin
Str:= ReadString(_Data,_data_Str);
Parss:=Parses(HEEPMORF,Str);
Pars:= GetSentence(HEEPMORF);
Pars2:=Pars; offeri:= 0;
while Pars2<>0 do
begin
inc(offeri);
Pars2:=Integer(Pointer(Pars2)^);
end;
offer:=offeri - 1;
SetLength(da_offer,offeri);
Pars2:=Pars; ind:=0;
while Pars2<>0 do
begin
da_offer[ind] := Pars2;
Pars2:=Integer(Pointer(Pars2)^);
inc(ind);
end;
_hi_CreateEvent(_Data,@_event_onParse,Parss);
end;

procedure THIMorphology._work_doTranslate;
var
s:string;
Pars2:Integer;
begin
Translate(HEEPMORF);
Pars2:=Pars;
while Pars2<>0 do
begin
temstring:= Pchar(Pointer(Pars2 + 16)^) ;
Pars2:=Integer(Pointer(Pars2)^);
s:=s+temstring;
end;
_hi_CreateEvent(_Data,@_event_onTranslate,s);
s:= Pchar(nil);
end;
procedure THIMorphology._var_Count_offers;
begin
_Data.Data_type := data_int;
_Data.idata := offer;
end;
procedure THIMorphology._work_doNumOffer;
var
s:string;
nOffer,Pars2,wordsi,Synti,ind:Integer;

begin
wordsi:=0; Synti:=0;
nOffer:=ReadInteger(_Data,_data_NumOffer);
Pars2:=Integer(Pointer(da_offer[nOffer]+4)^);
while Pars2<>0 do
begin
Pars2:=Integer(Pointer(Pars2)^);
inc(wordsi);
end;
words:=wordsi- 1;
SetLength(da_word,wordsi);
nOffer:=ReadInteger(_Data,_data_NumOffer);
Pars2:=Integer(Pointer(da_offer[nOffer]+4)^);
ind:=0;
while Pars2<>0 do
begin
da_word[ind] := Pars2;
Pars2:=Integer(Pointer(Pars2)^);
inc(ind);
end;
nOffer:=ReadInteger(_Data,_data_NumOffer);
Pars2:=Integer(Pointer(da_offer[nOffer]+12)^);
while Pars2<>0 do
begin
Pars2:=Integer(Pointer(Pars2)^);
inc(Synti);
end;
Synt:=Synti - 1;
SetLength(da_syntax,Synti);
nOffer:=ReadInteger(_Data,_data_NumOffer);
Pars2:=Integer(Pointer(da_offer[nOffer]+12)^);
ind:=Synt;
while Pars2<>0 do
begin
da_syntax[ind] := Pars2;
Pars2:=Integer(Pointer(Pars2)^);
dec(ind);
end;
end;

procedure THIMorphology._var_Count_Words;
begin
_Data.Data_type := data_int;
_Data.idata := words;
end;

procedure THIMorphology._var_Count_syntax;
begin
_Data.Data_type := data_int;
_Data.idata := Synt;
end;
procedure THIMorphology._var_Text_offer;
var
s:string;
nOffer,Pars2:Integer;
begin
nOffer:=ReadInteger(_Data,_data_NumOffer);
Pars2:=da_offer[nOffer];
s:=Pchar(Pointer(Pars2 + 16)^);
//s:=Pchar(Pointer(da_offer[ReadInteger(_Data,_data_NumOffer)]+16)^);
_Data.Data_type := data_str;
_Data.sdata := s;
end;

procedure THIMorphology._work_doNumWord;
var
s:string;
indm,ind:Integer;
begin
ind:=ReadInteger(_Data,_data_NumWord);
case ReadInteger(_Data,_data_Mode) of
0: s:=Pchar(Pointer(da_word[ind]+8)^);
1: s:=Pchar(Pointer(da_word[ind]+12)^);
else indm:=Integer(Pointer(da_word[ind]+16)^);
s:=Pchar(nil);
while indm<>0 do
begin
s:=s+int2str(Integer(Pointer(indm + 4)^));
indm:=Integer(Pointer(indm)^);
if indm<>0 then s:=s + ' ' ;
end;
end;
_hi_CreateEvent(_Data,@_event_onNumWord,s);
end;

procedure THIMorphology._work_doNumSyntax;
var
s:string;
ind:char;
nSyntax,noun,Pars2:Integer;
begin
nSyntax:=ReadInteger(_Data,_data_NumSyntax);
Pars2:=da_syntax[nSyntax];
ind:=char(Pointer(Pars2 + 12)^);
noun:= Integer(Pointer(Pars2 + 13)^);
if Integer(Pointer(Pointer(Pars2 + 13)^)^) = 0 then s:=s + ind
else
begin
s:=Pchar(Pointer(noun + 8)^);s:=s+ ' ' + ind + ' ';
s:=s + Pchar(Pointer(Integer(Pointer(Integer(Pointer(Pars2 + 13)) + 4)^) + 8)^)+ ' ';
s:=s + Pchar(Pointer(Pars2 + 4)^)+ ' '; s:=s + Pchar(Pointer(Pars2 + 8)^) ;
end;
_hi_CreateEvent(_Data,@_event_onNumSyntax,s);
end;
procedure THIMorphology._work_doClose;
var
sc:Integer;
begin
sc:=Close(HEEPMORF);
end;

procedure THIMorphology._work_doGetConnect;
var
ic:char;
nConnect,icon,noun,Pars2,ii,sumconni,indw:Integer;
begin
nConnect:=ReadInteger(_Data,_data_GetConnect);
indw:=da_word[nConnect];
sumconni:=0;
for i:=0 to Length(da_syntax) -1 do
begin
Pars2:=da_syntax[i];
noun:= Integer(Pointer(Pars2 + 13)^);
if Integer(Pointer(Pointer(Pars2 + 13)^)^) <>0 then

if indw=Integer(Pointer(Integer(Pointer(Pars2 + 13)) + 4)^)then
begin
ii:=0;
icon:=noun; a_Connchr[sumconni]:=char(Pointer(Pars2 + 12)^);
while icon<>da_word[ii] do inc(ii);
a_Connect[sumconni]:= ii; inc(sumconni);
end;
if indw=noun then
begin
ii:=0;
icon:=Integer(Pointer(Integer(Pointer(Pars2 + 13)) + 4)^);
ic:=char(Pointer(Pars2 + 12)^);
if ic='<' then a_Connchr[sumconni]:='>' else if ic='>' then a_Connchr[sumconni]:='<' else a_Connchr[sumconni]:=char(Pointer(Pars2 + 12)^) ;
while icon<>da_word[ii] do inc(ii);
a_Connect[sumconni]:= ii;inc(sumconni);
end;
sumconn:=sumconni-1;
end
end;
procedure THIMorphology._var_Count_Connect;
begin
_Data.Data_type := data_int;
_Data.idata := sumconn;
end;
procedure THIMorphology._work_doIConnect;
begin
IConnchr:=ReadInteger(_Data,_data_IConnect);
IConn:=a_Connect[IConnchr];
_hi_CreateEvent(_Data,@_event_onNumWordConnect,IConn);
end;
procedure THIMorphology._var_Connchr;
var
s:string;
//icon:Integer;
begin
s:=a_Connchr[IConnchr];
_Data.Data_type := data_str;
_Data.sdata:=s;


end;
end.
карма: 6

0
файлы: 1code_32274.txt [7.9KB] [982]
Ответов: 257
Рейтинг: -2
#41: 2013-11-08 19:01:26 ЛС | профиль | цитата
оба работают. Обновлять с первой страницы?
------------ Дoбавленo в 19.01:
Обновил с первой страницы - тоже самое (винда7). Ваши экзешники работают. Видимо дело в самом компоненте
карма: 0

0
Ответов: 2059
Рейтинг: 131
#42: 2013-11-08 19:35:49 ЛС | профиль | цитата
На первой странице, в самом низу, или здесь.
Попробуй обновление.
http://forum.hiasm.com/forum_serv.php?q=56&id=3629
А с новым кодом, тоже не работает?
А путь то правильный до папки с словарями, наазвание папки не должно присутствовать в самом пути.
карма: 6

0
Ответов: 257
Рейтинг: -2
#43: 2013-11-08 20:15:18 ЛС | профиль | цитата
скопировал pas`ы в папку. Стер название папки в путях к словарю (точку оставил), все равно ошибка
------------ Дoбавленo в 20.08:
кажется разобрался. Нужно писать . Но схема не работает- у вас там какой-то элемент не стандартный под счетчиком...
------------ Дoбавленo в 20.15:
вот посмотрите. Ошибка не появляется, но схема не срабатывает. (я поставил туда индекс ту чэнел, возможно там что-то другое должно быть под счетчиком)

Add(MainForm,9671684,168,119)
{
Width=529
Height=404
link(onCreate,945197:doSetLanguage,[(405,139)(405,174)])
}
Add(ListBox,5543210,175,175)
{
Left=5
Top=10
Width=505
Height=160
Strings=#32:стучит в правом переднем рычаге.|77:Тем более поразительной среди всего этого хаоса казалась тонкая прямая линия.|52:замена правого переднего рычага и левой задней ноги.|31:стучит в правом переднем рычаге|61:Из темноты раздавались странные крики, шорохи и встряхивание.|
DataType=1
link(onClick,7948982:doEvent1,[])
}
Add(ListBox,8311011,912,382)
{
Left=245
Top=180
Width=265
Height=185
}
Add(Hub,7948982,224,182)
{
OutCount=4
link(onEvent1,8311011:doClear,[(550,188)(550,395)])
link(onEvent2,945197:doSetText,[(329,195)(329,181)])
link(onEvent3,945197:doNumOffer,[(329,202)(329,195)])
link(onEvent4,8871095:doFor,[(329,209)(329,398)])
}
Add(Morphology,945197,420,168)
{
Path="."
link(onNumWord,12220201:doValue,[(632,188)(632,314)])
link(NumOffer,10125215:Value,[(433,132)(405,132)])
link(Mode,14131824:Value,[])
}
Add(For,8871095,420,392)
{
link(onEvent,12198169:doCompare,[(485,398)(485,223)])
link(End,945197:Count_Words,[(433,306)(440,306)])
}
Add(ComparisonAttributes,12198169,574,217)
{
Mode=2
Mask="1"
Point(Mask)
link(onTrue,3339762:doEvent1,[])
}
Add(For,14952044,637,350)
{
link(onStop,14114462:doReset,[(727,363)(727,300)])
}
Add(ComparisonAttributes,9178194,546,399)
{
Mode=2
Mask="3"
link(onTrue,16547076:doEvent1,[])
}
Add(PointHint,11649182,252,105)
{
Info=#17:Загружает словарь|
Frame=1
Width=120
}
Add(PointHint,286333,252,147)
{
Info=#14:Входная строка|
Frame=1
Width=120
}
Add(PointHint,2591212,252,231)
{
Info=#18:Обязательно нужно!|16:Заполняет массив|15:адресами слов в|18:данном предложении|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,7872888,175,406)
{
Info=#37:Запускаем перебор слов в предложении.|
Frame=1
Width=225
}
Add(PointHint,8019754,539,133)
{
Info=#34:Сравниваем все слова в предложении|38:с маской (форма) и находим его индекс.|
Frame=1
VAlign=0
Width=211
}
Add(PointHint,7064423,238,301)
{
Info=#21:В точку doGetConnect |19:подаём индекс слова|18:для которого будем|13:искать связи.|
Frame=1
VAlign=0
Width=127
Height=60
}
Add(PointHint,8019867,357,469)
{
Info=#44:Сравниваем все связи с маской (морф-атрибут)|21:и получаем их индекс.|40:По этому индексу выводим слова в таблицу|34:через точки doNumWord и onNumWord.|
Frame=1
VAlign=0
HAlign=0
Width=253
Height=81
}
Add(PointHint,9197259,798,210)
{
Info=#25:Перебор всех связей слова|23:через точку doIConnect.|
Frame=1
VAlign=0
HAlign=0
Width=148
}
Add(Memory,14131824,448,98)
{
Default=Integer(1)
}
Add(Hub,3339762,630,224)
{
OutCount=3
link(onEvent1,12787019:doEvent1,[(679,230)(679,276)(527,276)(527,321)])
link(onEvent3,14952044:doFor,[(656,244)(656,300)(625,300)(625,356)])
}
Add(Memory,12220201,840,308)
{
}
Add(DoData,13794249,840,378)
{
link(onEventData,8101017:doWork2,[(881,384)(881,388)])
link(Data,8241610:Var2,[])
}
Add(Memory,10125215,399,84)
{
Default=Integer(0)
}
Add(Hub,16547076,616,406)
{
OutCount=3
link(onEvent1,3796868:doEvent1,[(686,412)(686,342)])
link(onEvent2,12787019:doEvent2,[(642,419)(642,373)(527,373)(527,328)])
link(onEvent3,5516962:doData,[(714,426)(714,419)])
}
Add(Hub,12787019,539,315)
{
InCount=2
OutCount=1
link(onEvent1,945197:doNumWord,[(565,321)(565,255)(398,255)(398,202)])
}
Add(DoData,5516962,798,413)
{
link(onEventData,8101017:doWork3,[(893,419)])
link(Data,8241610:Var1,[(804,355)])
}
Add(GetDataEx,8241610,840,350)
{
link(Data,12220201:Value,[])
}
Add(HubEx,8101017,889,382)
{
link(onEvent,8311011:doAdd,[])
}
Add(Hub,3796868,742,336)
{
link(onEvent1,14114462:doNext,[(765,342)(765,286)])
link(onEvent2,13327197:doEvent,[(770,349)(770,342)])
}
Add(Counter,14114462,784,280)
{
}
Add(IndexToChanel,13327197,784,336)
{
Point(Index)
link(onEvent2,13794249:doData,[(828,349)(828,384)])
link(Index,14114462:Count,[])
}

карма: 0

0
Ответов: 2059
Рейтинг: 131
#44: 2013-11-08 22:01:59 ЛС | профиль | цитата
возможно там что-то другое должно быть под счетчиком)

Под счётчиком появится тюлько тогда, когда будет указано, что?.
Прошу великодушно извинить, сильно пьян, ...
Но точку поставим - надеюсь что вместе.
Не сердись!
какой-то элемент не стандартный под счетчиком...

Не, не то.
Козьма Прутков что говорил? - зри в корень.
Я такой-же осёл, как и Вы - сер!
P.S.
не стандартный под счетчиком

Это не самое важное, с твоим тоже пашет.
А точки не соединил для того чтобы мне показать где тормозит?
Я по простоте своей их соединил, и всё OK.

карма: 6

0
Ответов: 257
Рейтинг: -2
#45: 2013-11-09 03:15:16 ЛС | профиль | цитата
выложите что там соединить нужно. У меня при добавлении вашей схемы мало того что ругается на то что элемент comutator не найден (это то что под счетчиком), так и еще какая то точка не найдена. я уже все перепробовал
------------ Дoбавленo в 03.15:

карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)