Вверх ↑
Ответов: 1304
Рейтинг: 405
#1: 2009-07-26 15:42:21 ЛС | профиль | цитата
Karl, спецсимволы доставили мне немало мороки при обработке текста в FTCG, решение было простое заменить спец символы на определённые разделители в классической схеме, а уж потом обрабатывать текст в FTCG. В твоём случае избавиться от спецсимволов в рамках схемы FTCG, можно наверное только используя словарь для сравнения. Набросок схемы с использованием словаря(без обнулений).


Add(MainForm,5114806,105,224)
{
 Position=1
}
Add(FTCG_Tools,11458095,196,119)
{
}
BEGIN_SDK
Pos(1,0)
  Add(EditMultiEx,12566168,20,21)
  {
   WorkCount=#9:doReplace|
   EventCount=#9:onReplace|
   Width=377
   Height=326
   link(doReplace,12826260:doEvent1,[(34,27)(34,48)])
  }
  Add(FT_Message,5519270,335,287)
  {
   Caption="FTCG"
  }
  Add(FT_StringToArray,16387258,76,42)
  {
   link(onLoad,10886214:doLength,[])
  }
  Add(ArrayRead,9657637,174,105)
  {
   link(onRead,13003378:doFor,[])
   link(Array,16387258:Array,[(180,86)(82,86)])
  }
  Add(FT_Length,10886214,118,42)
  {
   link(SrcStr,16387258:Str,[(124,35)(112,35)(112,81)(89,81)])
  }
  Add(FT_For,16503481,118,105)
  {
   End=100
   link(onEvent,9657637:doRead,[])
   link(onStop,5522465:doData,[(157,118)(157,293)])
   link(End,10886214:Result,[])
  }
  Add(FT_Hub,12826260,48,42)
  {
   link(onEvent1,16387258:doLoad,[])
   link(onEvent2,16503481:doFor,[(67,55)(67,111)])
  }
  Add(FT_If_else,5466570,216,182)
  {
   link(onTrue,3905011:doEvent1,[])
   link(Op1,10664833:Var3,[(222,163)])
   link(Op2,8821186:Item,[(229,164)(299,164)])
  }
  Add(StrArray,11020621,293,42)
  {
   Strings=#1:а|1:б|1:в|1:г|1:д|
   ItemType=1
  }
  Add(ArrayRead,8821186,293,105)
  {
   link(Array,7624883:Var2,[])
  }
  Add(FT_For,13003378,216,105)
  {
   link(onEvent,7200010:doEvent1,[])
   link(End,1680469:Size,[])
  }
  Add(FT_Hub,7200010,258,105)
  {
   link(onEvent1,8821186:doRead,[])
   link(onEvent2,15435186:doData,[(290,118)(290,158)(166,158)(166,188)])
  }
  Add(FT_DoData,15435186,174,182)
  {
   link(onEventData,5466570:doCompare,[])
   link(Data,10664833:Var2,[])
  }
  Add(GetDataEx,10664833,167,154)
  {
   link(Data,9657637:Item,[])
  }
  Add(FT_StrCat,9530653,293,231)
  {
   link(Str1,3360646:Value,[])
  }
  Add(FT_Memory,3360646,293,182)
  {
   link(Data,1744141:Var1,[(299,170)(287,170)])
  }
  Add(FT_Hub,3905011,258,182)
  {
   link(onEvent1,3360646:doValue,[])
   link(onEvent2,9530653:doStrCat,[(282,195)(282,237)])
  }
  Add(FT_DoData,5522465,286,287)
  {
   link(onEventData,5519270:doMessage,[])
   link(Data,1744141:Var2,[])
  }
  Add(GetDataEx,1744141,279,266)
  {
   Angle=1
   link(Data,9530653:Result,[(299,275)])
  }
  Add(ArraySize,1680469,216,42)
  {
   link(Array,7624883:Var1,[(222,33)(289,33)(289,86)])
  }
  Add(GetDataEx,7624883,286,77)
  {
   link(Data,11020621:Array,[])
  }
END_SDK
Add(Memo,15639135,105,49)
{
 Left=105
 Top=20
 Width=265
 Height=160
 Strings=#2:аб|2:вг|1:д|
}
Add(Button,5680155,49,119)
{
 Left=15
 Top=20
 Caption="go"
 link(onClick,5109324:doData,[])
}
Add(DoData,5109324,105,119)
{
 link(onEventData,897591:doEvent1,[])
 link(Data,15639135:Text,[])
}
Add(Replace,11457966,189,224)
{
 link(onReplace,6824814:doReplace,[])
 link(Sub_str,14576529:Value,[])
}
Add(Memory,14576529,196,168)
{
 Default=String(
)
}
Add(Message,1439958,329,224)
{
}
Add(Replace,6824814,259,224)
{
 link(onReplace,1439958:doMessage,[])
 link(Sub_str,10427865:Value,[])
}
Add(Memory,10427865,266,168)
{
 Default=String(13)
}
Add(Hub,897591,154,119)
{
 link(onEvent1,11458095:doReplace,[])
 link(onEvent2,11457966:doReplace,[(178,132)(178,230)])
}

карма: 3

1
Голосовали:Karl