Вверх ↑
Ответов: 1536
Рейтинг: 176
#1: 2010-08-31 09:13:34 ЛС | профиль | цитата
А вот этот ещё интереснее! Караоке проигрыватель Vanbasco's отображает английский текст (не транскрипцию), а если извлечь текст "нашим" алгоритмом, то текст на русском. Похоже остальные из 35 карфайлов заточены под своеобразный алгоритм. Где бы его найти

http://www.hiasm.com/forum_serv.php?q=56&id=1727
------------ Дoбавленo в 22.24:
Выяснил! второй текст забит в мета-тег FF05, алгоритм тот же (стандартный), но как быть с русским текстом?
------------ Дoбавленo в 09.13:
Эврика! В каждом текстовом блоке нужно просто отсеч всё после нулей и всё! Жаль только самому себе рейтинг не подымешь.

Add(MultiElement,6586670,434,147)
{
 @Hint=#14:Тег FF01, FF05|
 AddHint(-18,54,90,13,@Hint)
}
BEGIN_SDK
  Add(EditMulti,14521828,21,21)
  {
   EventCount=1
   WorkCount=1
   Width=916
   Height=319
   link(doWork1,6840948:doOpen,[(45,27)(45,55)])
  }
  Add(For,11328692,427,140)
  {
   Start=1
   Step=2
   InData=0
   link(onEvent,1047240:doCopy,[])
   link(onStop,13410739:doEvent1,[(470,153)(470,258)])
  }
  Add(Copy,1047240,511,140)
  {
   Count=4
   link(onCopy,2185974:doCompare,[])
   link(Str,2605609:Var2,[])
   link(Position,15952115:Var3,[(524,93)])
  }
  Add(If_else,2185974,553,140)
  {
   Op1=String(FF01)
   link(onTrue,11367187:doWork2,[])
   link(onFalse,12121326:doCompare,[])
  }
  Add(MathParse,5142040,672,70)
  {
   MathStr="%1 + 4"
   ResultType=0
   Point(reCalc)
   link(X1,9643148:Var3,[(678,44)])
  }
  Add(Copy,8909672,672,140)
  {
   Count=2
   link(onCopy,6474743:doConvert,[])
   link(Str,12550593:Var2,[])
   link(Position,5142040:reCalc,[])
  }
  Add(GetDataEx,2605609,511,112)
  {
   Angle=3
   link(Data,1656941:Value,[(480,117)(480,188)(307,188)])
  }
  Add(GetDataEx,15952115,497,88)
  {
   Angle=3
   link(Data,11328692:Position,[(403,93)(403,181)(433,181)])
  }
  Add(Convertor,6474743,714,140)
  {
   Mode=5
   link(onResult,3172288:doOperation,[])
  }
  Add(Copy,8892528,805,140)
  {
   link(onCopy,778308:doWork1,[])
   link(Str,12550593:Var3,[(811,117)])
   link(Position,15224790:reCalc,[])
  }
  Add(GetDataEx,12550593,672,112)
  {
   Angle=3
   link(Data,2605609:Var3,[])
  }
  Add(StrCat,1566078,581,210)
  {
   Point(doClear)
   link(Str1,10961198:Var1,[(587,198)(568,198)(568,261)])
  }
  Add(GetDataEx,10961198,581,256)
  {
   link(Data,1566078:Result,[])
  }
  Add(Stream2Hex,7430455,581,273)
  {
   Mode=1
   Point(Position)
   link(onResult,7825033:doConvert,[])
   link(Data,10961198:Var2,[])
  }
  Add(Stream2Hex,7825033,623,273)
  {
   Mode=4
   Point(Position)
   link(onResult,11593055:doReplace,[])
  }
  Add(Math,3172288,756,140)
  {
   OpType=2
   Op2=2
   ResultType=0
   link(onResult,8892528:doCopy,[])
  }
  Add(Replace,3037024,833,273)
  {
   SubStr="/"
   DestStr="\r\n"
   link(onReplace,12574855:doReplace,[])
  }
  Add(Replace,12574855,875,273)
  {
   SubStr="\"
   DestStr="\r\n\r\n"
   link(onReplace,14521828:onEvent1,[(918,279)(918,27)])
  }
  Add(Replace,11593055,665,273)
  {
   SubStr="@T"
   DestStr="\r\n"
   link(onReplace,2910872:doReplace,[])
  }
  Add(Replace,2910872,707,273)
  {
   SubStr="@L"
   DestStr="\r\n"
   link(onReplace,6339562:doReplace,[])
  }
  Add(Hub,13410739,511,252)
  {
   OutCount=3
   link(onEvent1,7430455:doConvert,[(553,258)(553,279)])
   link(onEvent2,1566078:doClear,[(553,265)(553,223)])
  }
  Add(Memory,1656941,301,140)
  {
   @Hint=#10:Здесь блок|16:с информацией и |15:с текстом песни|
   link(onData,14720984:doLength,[])
   AddHint(-51,-67,91,39,@Hint)
  }
  Add(Length,14720984,343,140)
  {
   link(onLength,11328692:doFor,[])
  }
  Add(MathParse,15224790,805,70)
  {
   MathStr="%1 + 6"
   ResultType=0
   Point(reCalc)
   link(X1,9643148:Var1,[(811,33)(587,33)])
  }
  Add(Replace,7192113,245,140)
  {
   SubStr="FF01FF01"
   DestStr="FF01"
   link(onReplace,1656941:doValue,[])
  }
  Add(Replace,6339562,749,273)
  {
   SubStr="@K"
   DestStr="\r\n"
   link(onReplace,13893298:doReplace,[])
  }
  Add(Replace,13893298,791,273)
  {
   SubStr="mid"
   DestStr="mid\r\n\r\n"
   link(onReplace,3037024:doReplace,[])
  }
  Add(GetDataEx,9643148,581,39)
  {
   Angle=3
   link(Data,15952115:Var1,[(503,44)])
  }
  Add(BlockFind,12902020,77,140)
  {
   StartBlock="4D54726B"
   EndBlock="FF2F00"
   link(onSearch,7934278:doCompare,[])
  }
  Add(StrMask,6053798,189,168)
  {
   Mask="*FF01*"
   link(onTrue,14521044:doWork3,[(233,181)])
  }
  Add(StrMask,7934278,133,140)
  {
   Mask="*FF05*"
   link(onFalse,6053798:doCompare,[(177,146)(177,174)])
   link(onTrue,14521044:doWork2,[])
  }
  Add(HubEx,14521044,229,147)
  {
   Angle=3
   link(onEvent,7192113:doReplace,[(233,146)])
  }
  Add(If_else,12121326,602,147)
  {
   Op1=String(FF05)
   link(onTrue,11367187:doWork3,[(655,153)])
  }
  Add(HubEx,11367187,651,140)
  {
   link(onEvent,8909672:doCopy,[])
  }
  Add(MultiElement,778308,854,140)
  {
   @Hint=#6:Фильтр|
   link(onEvent1,1566078:doStrCat,[(898,146)(898,188)(543,188)(543,216)])
   AddHint(-12,-31,55,13,@Hint)
  }
  BEGIN_SDK
    Add(EditMulti,3336466,21,21)
    {
     EventCount=1
     WorkCount=1
     Width=489
     Height=179
     link(doWork1,12546681:doValue,[(45,27)(45,76)])
    }
    Add(Memory,12546681,70,70)
    {
     link(onData,5785377:doLength,[])
    }
    Add(For,4989567,203,70)
    {
     Start=1
     Step=2
     InData=0
     link(onEvent,508834:doCopy,[])
     link(onStop,7538839:doEvent1,[(259,83)(259,146)])
    }
    Add(Copy,508834,266,70)
    {
     Count=2
     link(onCopy,323171:doCompare,[])
     link(Str,12546681:Value,[(272,50)(160,50)(160,114)(76,114)])
     link(Position,4989567:Position,[(279,58)(244,58)(244,114)(209,114)])
    }
    Add(If_else,323171,315,70)
    {
     Op2=String(00)
     link(onTrue,4989567:doStop,[(357,76)(357,37)(191,37)(191,83)])
     link(onFalse,8215654:doStrCat,[])
    }
    Add(StrCat,8215654,392,77)
    {
     Point(doClear)
     link(Str1,15262046:Var1,[(398,65)(379,65)(379,121)])
    }
    Add(DoData,13362810,385,140)
    {
     link(onEventData,3336466:onEvent1,[(471,146)(471,27)])
     link(Data,15262046:Var2,[])
    }
    Add(GetDataEx,15262046,385,116)
    {
     Angle=1
     link(Data,8215654:Result,[(398,121)])
    }
    Add(Length,5785377,119,70)
    {
     link(onLength,4989567:doFor,[])
    }
    Add(Hub,7538839,322,140)
    {
     link(onEvent1,13362810:doData,[])
     link(onEvent2,8215654:doClear,[(364,153)(364,90)])
    }
  END_SDK
  Add(Stream2Hex,7720206,133,49)
  {
   Point(Position)
   link(onResult,12902020:doSearch,[(177,55)(177,113)(64,113)(64,146)])
   link(Data,6840948:Stream,[(139,37)(114,37)(114,96)(76,96)])
  }
  Add(FileStream,6840948,70,49)
  {
   link(onLoad,7720206:doConvert,[])
  }
END_SDK
карма: 1
Не так страшна ошибка, как опасность её не заметить.

1
Голосовали:Леонид