Вверх ↑
Этот топик читают: Гость
Ответов: 1535
Рейтинг: 176
#1: 2010-08-18 17:20:06 ЛС | профиль | цитата
Как можно реализовать извлечение текста (титры) из караоке файла *.kar, используя возможности HiAsm? Если можно со схемой.
------------ Дoбавленo в 11.43:
[flood]Дублирую предыдущее своё сообщение, так как оно не отобразилось во вкладке "Последние"[/flood]
Как можно реализовать извлечение текста (титры) из караоке файла *.kar, используя возможности HiAsm? Если можно со схемой.
------------ Дoбавленo в 17.20:
Вот, примерно, как я это увидел, но здесь всё равно не удаётся избавится от лишних символов в тексте.

Add(MainForm,2953706,182,126)
{
Width=423
Height=508
Caption="Извлечение текста из *.kar файла"
BorderStyle=3
Position=1
link(onCreate,16654994:doSelect,[(226,146)(226,167)(170,167)(170,188)])
}
Add(MemoryStream,16680769,308,140)
{
Stream=[ZIP9425000078DAED5A6B6C1B5776FE66387CE82D5B2F4A962DCAB66C5A16C5B1CC8864461427C361284B0CED6C9CC4892D7104498E244AA21ED45071280B43A7289A5FF526DBA228B0FDB57F0A14DD74D376FFB5DB6E1F5834283640D15FC55AB6B5EB449622CB8BEE1631A29E7B693906BA0BB4C576B1DD0D2068EEEB9CF37DE79E73EFB9965FB838390EC00101E5305EB8B898A1DE9F62EF9224896E17F65E13A9BFF7A2AD62E19BD8B3557C777B7D677BC3F37077679BBA4DDFD9D9F87877FDE1CE1DCFF7BABB3C1FED3C5CBFF513CF87DD3455FEFD8D9D3B1B1BB769027BA22FB638319A9B18F7E4A772939EA1D1C5174633138BCF7A7213A3B36A667471349B997863746674E5CDEEB1ECACF50D66B1F29DAFD7963EC579FA56FDF1D1DAD2679C3EB5DF184E325477FE057B7E9460DBA7F1D7097CD379E19DDACB5EFC6ECC74C74D2986FA84E98CE354021830DD09B37C002762A690802F06316EBE19875F33DD3153D2501F376D31F812A63D8EBAB8E94AC0AB71590D8899CB319C554D378DA83810331D1A4EC520C4992C5BA39AF6184E6BA64385A9A18B74AAA6A0A12966DA54F834A6B95C4385663EAF4154CD6A15E5AA69D9551C4B30A004A829614A717426182C02EA88E3B90484A4E94E998E248C14345A4934F82CADECDA6FDBE2F0A5CC83091C4AC19634C793D0897C0CE0C4EC1A4EC74D3186C68459164774C094128C6ACD00ACD538ACCA986990FD1886E30C981C334515A763B069A6CC29D4AA7012545D453190303D49D3994073CAAC4EE2E005534CC1AABA002165BA93A69442FD905995C4CA102A08B86E562461F5EA480C9972D21486E01F326D49340C01497380B77DBC2D9F3325D2770E62C22C1249CBE0962A09698A29692859AABC00915BAA4CA172C874917617D7DBA49B22758EE9381B378D24DBC1534988436C2D4D2774B6967653D0E1E7A4C8FF65AA596C2152D5BF8691424E4A31BFD208F9B58BDAE759DB761EBE24F32439C79E34B34984FF9B91F22A454ACFAF68A4E43DC93C8F943C8F94FC9348C9BB6982454ABE1429791E29F92791923792F9FD48616B79A4E479A4E479A4E4F72325CF22E50F4AA638A93C27957F428A897352F97D5279B79E7F422A2F73EDFEA1FC3EA9FC006F735279F95C7E9F54FE974CAAC005CAE3E84842E002B621588349287AFEB40EBB9697D53C4546AB8A1A9288AAF8E2C475FC07F6DAA96FB3BF9A5D1C5F7AD210FEA727BEB42754A9179FBA5C843DA159BDF873AE179AAC542F7E71C1D8F604BB9AFCCACB2FBDE3A096FF7BB73EF1B8F704717D83FDFED143794F90EE6F6DF3B13D0FF5C4CDCFD9D8FABDCD2ECB4B5DFFBFD1946DB7B462FD339AB36DF28EB44BAA98C0DD5B4CE0F6D6361790FC1FED30DDF6DD47F7EE73A1CD7B34EFF8E9D6BDFB5DBCFFE936F5EDF7B73EEFF2704B9F6D3E16FC7083CDDB1EDCBDC53EB76F6D32630FF6B8B1DB0FBEED1920E19D5BEE92B16E26E3607CF6B57259AE5CDAB977BBA46A9B09D91EEC7EC6A4EE6EDFE7966CFE0FD962E9278F3EE7BA3FDDBECB90D8766F731D049BD1DAFE8469DA7A2C23F9FF7597CFAE7FC6CDDD29D92149C6F5F6C68347CC92F090F57EB4756BB3EB065BECFFCE8641CB36B73FF6D0D7F6C90E7395FDC127D46726B65857FCF41E03F1E0D6E6B3375668D195EF6E7B989D1DF611373C1EA6D6AA651EDDD92E71DDFC9C9959DFBEFDC8C326C4FB9CCE5EBBC7577431A8FFBCC3D0397EB2FBED9F3EE2CC1E6C6E975CCADDB1758B5BBFBFCDA7382DE9F6F6C7DDDCBCFF7F695EDCEBB22E31F91F30AAC263DD7CB73E2F39C776FBC10673DA9DBBDCBEF4C05332BDBEFD71FBDBE462FB958F4AC1F918AEF8431638F6CD6D1267DD8725D45CC7D69EC7F745784ABBE45026F863EE60F1475CFC73B69E0391EE6E6D7F5CDAF98FD8947DF3D127A518FE74E71ED7BAC3FDF3C3BB25E58FF8A0EDEED65E49E807DC3EA769BB5382C1C3CDBEFED92EA7F63497EE52B8FCD3566939B763DFDCD8E5D16EBFBBB1C5D908DB034FD28AE0ED3D0ECCEF3321E7E6D6BF6F787CA524FB8CCB89B7B8104B5707ED034DB2C1BDEEFFEA03718B71B0FD70EBB10F38BADD123F8ABB52587E78CB60A41FB2DF3FE52EE3CEB253067CFC053DE993FDA0F88D8CC93FBCF69BCAFC46E3CF17659C7E96ACFC58567872018AFF88F7E18207F84E33DE77BE8CCB6BB8195B1BA69A28BE62A82B621CDDB1152AEBDAB415AAAB1CAC3C5C71692B546C76AA2BD43DA14252578AED2ADDCB2B6EBA5BB515776CA542C3CBF1152AB4D2EA8A40855734F9668C6A2A33897B89F705C9B8A9E6DAB41C09D9623952E28AA1ECFD0908E3101CA27002E2CD58AE7E1DE745BC24E055019705A4058C016F08C808C8024B02F202DE12B076E1660CF675D6A4011ACED212BED000AE00AF025F015437696CD07264A89E28A8B934214DE43C09D42672D6E5041A7E36AAEA5F028EA1D0685978540AC1151A15C3900363D521BC15809D20ADDDD4968FC796F7C12CFFC2C12C3768CBFB609609CCB1F87235D910F012988D2B242180DED79302668079013960850C34DD8CE3407C79995E0FEB506DFB9B67E79B975876AEE33989FD3C2F6148C20509AF48B82CC1903021212391265A655BC7B2846BD2DADAF2CD042A4911C9424CE6AC3AAA2B93B9BA54AE32096732E74CA13CC927A8C83C3494AD3C97B50FC13994759D837578E8A982AE228DBF69C69F395FC7E5797C559E35FC33B5322EF8E65BFDD0FDB3AD3EE8DE4CBD1FADC19CAC4CCBEA4C43100715942999D32AECC1393930E95470CA9FF504E1F2C2252F3803A8F5E39C7FB15946C2976DF623E4438D6FDEED9F76F74CDA7C6808CC3AFD38E0CD093D381A4015D39C690CA245CDD42938CCAC00C149D60E4C91DADAE04C75004E2F0EF5646A83F0843372FFD281306558B6BA1F47C3338735D4F52F3686D1125E6CE887D483A69ED9A6309AE5A5A61EB406E6BB8393070268EB9BA90EA25D5D6AEA434BDF74834AA4961AA81D98AF0B02325A7D4B4D013407A6E5F0AC3B0077DF5C6D180E1F5AFC8BEE3EB8CF66E570B6FA2C8E2A331564DD0F8797833C9D717BE156266575A14541FD69884A8E6AE7FAE06C83824381A5A6209A83D33501B4F7CC5405712C9C93FB6738FE1CC73FCFF12F70FC93FBF86738FE458E7FAE3B38C7F1CF73FC931CFF1CC7BFC8F1E71EE32729C2DFBB20F7CFB7F4A251CB3849BF065BFFA4A44D57F5C33AD343CFB869C4966C1A5EA74720656E3C036DDE5097E8D4A1C1AED8023D615BE8F14A39C7CEAE3997B644CFD3D36A865E04952A2AD4453D9895952C996C648FBFA55A05CB344EBB2BCF54F959E3A08C23DE6CB91F27940C458C5F81A0670EAA2C3E1ACF2EB6E938407B1CCD32EFE853B551349F85F34CF6A08E231172E2526B04F57AAE895E1F6750EE9F3EA0A32D441633CD2134A90B350ADA7D4B357E309C9129599D6B8AA0393E4D0F1BBB0F07BA669AE2685666647592EB67768F74CE8B5DA825FDE179393257D609298C63CA227AE7115D827FC61E8125F8C95846EC851405141CF465DD5D598A53970F659D93355D28F3E62A3B715CC912444E697E9F528E539ADCA794DDA7B4C0292DCA6A96539ADBA7B4C829CDC8CA24A734CB2845A611CEA2378BCE8512B7CE5E200C21422BE7E8DC83328DAE79A11351321D623B77A40B0289A8338864E19B8A8441B78E18C191E824889B3603FFA2E4C373B48B510A49347BB3C4D1AF5214E7EA541C0E4DD785617A610B41F2CD5276D610D31EBE8581ACAB07B5DE5C590027BFCCCEFFA3EC8CCD53769ED2E69D319CEA9FAFD698ADFA7E0CEEA7A8338C57BE4CD12F53D40A8760F3A25DCEC9C18CDC97A9A05D9551A366CAFA70B267FE00959A2C66E7ABC374D62F95F5A38322C83B4715658792934373D504DD0B21305316C2497F9692F5A8BA282B0B0E2210CA5428E8907364D51E42677051EE5BEA0852042DB96438FA70D49F39A9A28CE57449FFB4AB1F5EDF2C29871F1DE4B8F06475048D3E54C6276BC2680FE46AE26857E66575B651418B3E4D6E7204702C90A9D3713838C9ACF7CD10850E75E1401FDA7A664AF82B7B70BC3FCBD36E8E289C0C4C1FD0D0A66459A2AB3344E1A8BE58A1A22390ADD629C5A7398B2C1F9FE1E3D3153A3AC253DE005C91A5436134A8B315114298A10C680967CB22A4739EE90F2F5404D0411BCCDA8B47FC3818C91D0EA34E9DAF8BE07074DAA5C27A264A1E67F1FC656AFC7F488DB6DE29517F0D3A6CE1294764CAA54D594723907A99A36C81293A15119A7228532E75CA32E9F60A801E0F92821AFF945D99724499C4797DCDC66D91F7A8641DD7216A6BEDFA1A457AB3B646DEA700A9D2D01459AD55D11C5DAB8FD0C8745D1487B4D51AC2A3AFD669688DAF92D3BA13ABCD71140B89A7CA6CDB1FE16FDBF12D67FA062EAFE25D6FA1F8961737ECF45DA3DCEC29DC805CA03BB768CA107D054BF517041FBD020305D18FE2757FC1154071C54FD708ADEC29D864148FF7E035B960C8948805C3C7D68DF80B1443AFF929FB0B4578E1395678E918AABCA4CE0B9CA44F47C1791256A803829F7ABE42859F62BDAB64AAB32074C1AAA0E8A2B997FD38C4E44E16C8BD9672126247C18A74C04673413F8554C1E82AD83B71990C7731C3A4224DF0C8F0A217D5BF86B45EF6E2F4F1554B3DB12A1C87D57702B6D655AB36F492F54608F65648C7AF5BD1E3108E5DB77A8FA1BCFDBAE14B97B5E3D5AEB44828825D70B65DB7C26D701EB96EA99EEBC21182D6765DF2C03ADB86B223AB96740495F4993C02DBB71EBF0D2BD9DBF0DD63ABC61D3C2742131113A18B785E4442C4808841114322922252227BE45E10F1157AEA8AB828E21511AF8AB824E2351197455C11312C222DC210312A624CC4B88809116F889814312522236246C4AC883911F32216442C8AC8895816618A5811F1A6886B220A2256455C17D7D6AEBC7B0CD8076A23A0C21DA8C2BBBD13A7EE4093D02F212C2120C12FA1534287048F8443121A251C905029C12941149884B720F4922F7EB93BF976C65B78BBDA4B874AE1C619EF53692A0DE2BB323E703E8772F56BB83C82F71223C51C3DB5E323480CDE406CC44199BD908014837D6004F111A37F4456477825376257713D0E61808E0E947F50BE86F77AD7E814AAEF5973F4E0E007E52ADE530DD04FCC806CD4C978411B41FF8818A38A8F9D8957FA46A08E88FDA013EBB5FE1190C63E762C5EA2410D346E5D53E9F21B195668340D3D6D3D43555D346D45743E10493BA2146C11D894B4A5524F81F5AC92A60BDAEA89A4114E134081C65C613A51D388A6259AA11AD91EC5453D0D9584688CEEBF3EAE8CAE12BB4EFA14BEAE976E283ABCC36CE62215DE11381426F3321F7744783B0232E188A6A1A45F57D869EA0873BD543B88A1B455C18FFE890FCAC13C71A39AD8C40D77CC20A71E8C1BAE188A67E36888196ECD607F938C1954DF16EB639034A3F8A646F78A7103FDE93215C56C3F5C7D69D62317153BFAF1CA13CF929F8DF77E751CFB33BC6AF5FDE25CEAE32E1D18784988BD82C111EB4CDCA0B78015D50D7A2D2069D80621260C6900C5D598212401BA95746080DA86158D1BC2A0819421908F076839ACAE14CA9286F02213B4D40B86ED4512611B648506B87B938678816BA1C51D03A849C2CEFED46D60D01052867568108E1468BD9B1024D872AB2F66881447FA39D62308B60468678AD71246FD39589E242A87486E8870C21AD32FDE40E26239ADEF251BE7D8BE596A6244A095EC0F91948791910A5A48FE13A2949423521C2B51E4D4B49346835443D0B6A97A5A8CA298D7E10C1B236C530C2362501531A21854635C5120860D3ABD0D2A10AC9E109E3D93406F04E188153D43957204A108FC09910A183A9B5EA45A21C0CADD013FADEAC3D93E431D84A222A04257C5B300151A7EFC768FCE624008B037D717270A7E8CBF93F1E7EC4459FB2BE36BE7278AC9F39052134D2908C909776AC295443192424572A229096170C29D9C3848AEBF96447D72A2D89A843434961EA2C563567F12E2F9314B4DC5F1E258CD793A8892719C1F1353A05D2ABE35F8BC447BA29C87901ACBA5200EE2AB2D8951777CD49E409D3EEA8AE3B716757CDDA11B149186A0338F1A14D8C56B71834A362BAC1B2EB6CF9A41EE2F5ED07082AD4CF0CD8BB0FF6D601473B45971F2AF9AB6C771594B53E5D3AEA6CB355855DE356BC6CB62F129EE4BF8FB00FEC2F9BA65E1F7062E49C14BD633E14B6210E2006C83972C2570C99EB8543E48290076CA0AEA3892E3888FE3DC387AC75BA838B8720E4E7AF526C6A18D4319E77745741C43E31447749E6614F62FEC02C54E14C2D3F516FE04FFD08CBF740E595F755DBE8ADF8F5C7547AF5645E86573B5268A32ED2A212FD3AF52755715BF5AC54E3956B1696372748C5EE2E591B1EA28CA95B1DA085E51F0F6B43E2EC7C78FE83898186F89A331397E8482AD3B89DF391E18EE0E0D370650AD0C5785100C0CD35B3BC00ACCE1F3CA7063882264989E58AFAB782630DC1A1A6E55860FA993C53685C59414DAF7D77F02CB0F8D54]
}
Add(Stream2Hex,5917834,147,364)
{
Mode=4
link(onResult,11955377:doSearch,[])
link(Data,9104948:Var,[(153,310)(314,310)])
}
Add(Memo,2959301,826,322)
{
Left=10
Top=30
Width=395
Height=445
ScrollBars=2
}
Add(BlockFind,11955377,210,364)
{
IncludeBlock=1
StartBlock="MTrk..."
EndBlock="я/.MTrk..."
link(onSearch,5885537:doCompare,[])
}
Add(StrMask,5885537,266,364)
{
Mask="*word*"
link(onTrue,7114980:doReplace,[])
}
Add(ODialog,3262101,77,266)
{
Filter="Караоке|kar"
FileName="*.kar"
link(onExecute,12189868:doEvent1,[])
}
Add(FileStream,6840948,350,126)
{
}
Add(Hub,12189868,119,266)
{
link(onEvent1,6840948:doOpen,[(151,272)(151,132)])
link(onEvent2,7848967:doWork2,[(196,279)(196,237)])
}
Add(RadioButton,16654994,182,182)
{
Left=10
Top=5
Width=135
Selected=0
Caption="Доброе утро.kar"
link(onSelect,7848967:doWork1,[(230,188)(230,230)])
}
Add(GetIndexData,9104948,308,224)
{
link(onIndex,1332929:doEvent1,[(353,230)(353,340)(86,340)(86,363)])
link(Data1,16680769:Stream,[])
link(Data2,6840948:Stream,[(321,184)(356,184)])
}
Add(ChanelToIndex,7848967,259,224)
{
link(onIndex,9104948:doIndex,[])
}
Add(Replace,13494673,532,336)
{
SubStr="Ѓ"
link(onReplace,15551487:doReplace,[])
}
Add(Str_Enum,10101255,378,371)
{
Delimiter="|"
link(onEnum,14020032:doDelete,[(450,377)(450,342)])
link(onEndEnum,15293175:doSum,[])
}
Add(Delete,14020032,490,336)
{
Count=1
Direction=1
link(onDelete,13494673:doReplace,[])
}
Add(Replace,7114980,322,371)
{
SubStr="я.."
DestStr="|"
link(onReplace,10101255:doEnum,[])
}
Add(ArraySum,15293175,763,378)
{
Delimiter=""
link(onSum,2959301:doAdd,[(811,384)(811,328)])
link(Array,5180197:Array,[])
}
Add(StrList,5180197,749,273)
{
}
Add(Hub,1959377,707,322)
{
link(onEvent1,5180197:doClear,[(735,328)(735,286)])
link(onEvent2,2959301:doClear,[])
}
Add(Replace,15551487,574,336)
{
SubStr="/"
DestStr="
"
link(onReplace,11162348:doReplace,[])
}
Add(Replace,11162348,623,336)
{
SubStr=""
DestStr="

"
link(onReplace,5180197:doAdd,[(688,342)(688,279)])
}
Add(StyleXP,1280417,28,91)
{
}
Add(Hub,1332929,98,357)
{
link(onEvent1,1959377:doEvent1,[(396,363)(396,328)])
link(onEvent2,5917834:doConvert,[])
}
Add(RadioButton,10132698,21,266)
{
Left=195
Top=5
Width=85
Caption="Файл N.kar"
link(onSelect,3262101:doExecute,[])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1
Рейтинг: 0
#2: 2010-08-18 22:13:41 ЛС | профиль | цитата
Зачем тебе это надо?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#3: 2010-08-18 23:00:28 ЛС | профиль | цитата
А кто не дает еще один компонент добавить. (или еще несколько) ?

Add(Replace,10797658,539,259)
{
SubStr="ѓ"
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Ответов: 1535
Рейтинг: 176
#4: 2010-08-19 09:24:59 ЛС | профиль | цитата
Tad писал(а):
А кто не дает еще один компонент добавить. (или еще несколько) ?

Бесполезно, их там кучи, да и структура *. kar файла не всегда стандартна. Надо что-то другое искать.
sam писал(а):
Зачем тебе это надо?

Меня тут попросили придумать эдакое, чтобы среди тысячи *.kar файлов, найти тот, в котором содержание текста совпадало бы с запросом. Допустим запрос "ля-ля-ля" и в результате поиска программа выносит список совпадений.
------------ Дoбавленo в 09.24:
Вот здесь лежат исходники некого караоке плеера, но я в этих кодах не понимаю. Господа профессионалы может подмагнёте, как извлечь текст из *kar файла, при помощи HiAsm.

http://ishodniki.info/index.php?dn=down&re=load&ds=b5fe6059a60f0723f162bfc9a417c551
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#5: 2010-08-19 10:31:09 ЛС | профиль | цитата
ser_davkin писал(а):
Вот здесь лежат исходники некого караоке плеера

Исходники писал(а):
Запрашиваемой Вами страницы не существует !


------------ Дoбавленo в 10.31:
Тут больше подойдет вот это описание http://ru.wikipedia.org/wiki/MIDI
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#6: 2010-08-19 11:06:46 ЛС | профиль | цитата
Вчера вечером отрубился Инет, поэтому отвечаю сегодня (хотя nesco указал тебе правильный путь)
ser_davkin писал(а):
да и структура *. kar файла не всегда стандартна. Надо что-то другое искать.

Структура всегда одна.
Текст начинается с MTrk и заканчивается тоже MTrk
FileType: @KMIDI KARAOKE FILE
Version: @V0100
Information: @I<text>
Language: @LENGL
Title 1: @T<title>
Title 2: @T<author>
Title 3: @T<copyright>

"/" - новая строка
FF 01 03 <слог> - где FF01- флаг слога, 03 (переменное) - число байт слога <слог>.
Так что файл прийдется читать наверное побайтно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Разработчик
Ответов: 26066
Рейтинг: 2120
#7: 2010-08-19 11:27:34 ЛС | профиль | цитата
Tad писал(а):
и заканчивается тоже MTrk

Неправильно -- заканчивается концом трека. Следующий MTrk -- уже другой трек
Wikipedia писал(а):
Конец трека
FF 2F 00

Это событие является обязательным. Оно обязано быть последним событием каждой MTrk записи. Оно представляет собой явное обозначение конца MTrk записи. Допускается использование единственного мета-события «Конец трека» для каждой MTrk записи

------------ Дoбавленo в 11.27:
Tad писал(а):
Так что файл прийдется читать наверное побайтно

Необязательно, можно через HEX, как текст: MTrk, тогда, будет 4D54726B, начало блока поиска, а FF2F00 -- конец блока
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#8: 2010-08-19 12:18:49 ЛС | профиль | цитата
nesco писал(а):
Необязательно, можно через HEX, как текст: MTrk, тогда, будет 4D54726B, начало блока поиска, а FF2F00 -- конец блока
аа там знаешь сколько таких блоков ? А нужен только блок со словами песни.
ЕМУ СКОРЕЕ НАДО

Add(BlockFind,11955377,168,287)
{
StartBlock="FF0305576F726473"
EndBlock="FF2F00"
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Разработчик
Ответов: 26066
Рейтинг: 2120
#9: 2010-08-19 12:37:10 ЛС | профиль | цитата
Tad писал(а):
аа там знаешь сколько таких блоков ?

Знаю -- 10, в предложенном примере
Tad писал(а):
А нужен только блок со словами песни

Не блок, а блоки. Насколько я понял, то там есть еще символы нуля (0) внутри текста, так он, насколько я понял, означает пробел между словами, состоящими из слогов
------------ Дoбавленo в 12.37:
Tad писал(а):
ЕМУ СКОРЕЕ НАДО

А как предполагается отслеживать слоги, там же стартовый FF01XX и попадается еще 81 ("ѓ"), символ, который я так и не понял для чего нужен
карма: 22

0
Ответов: 1535
Рейтинг: 176
#10: 2010-08-19 12:44:11 ЛС | профиль | цитата
Вот, несколько изменил. Работать стала избранней, но пока изучаю.
code_20088.txt
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
файлы: 1code_20088.txt [12KB] [617]
Ответов: 16884
Рейтинг: 1239
#11: 2010-08-19 12:57:57 ЛС | профиль | цитата
nesco, он должен выбрать из блока, начинающегося со слова Words (FF0305576F726473) и заканчивающегося FF2F00 (конец блока), FF 01 Len число символов указанное в Len. И пробелы там тоже входят в Len. Все остальное, что в этом блоке для него мусор. Между прочим символ "/" (начало новой строки) тоже учтен в Len.
------------ Дoбавленo в 12.57:
nesco писал(а):
81 ("ѓ"), символ, который я так и не понял для чего нужен
Вроде пустая строка между куплетами.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Разработчик
Ответов: 26066
Рейтинг: 2120
#12: 2010-08-19 12:58:12 ЛС | профиль | цитата
Понятно, значит -- два перевода строки
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-08-19 13:15:54 ЛС | профиль | цитата
ser_davkin, самый оптимальный алгоритм
ser_davkin писал(а):
Извлечение текста (титров) из караоке файла *.kar
1.Выдрать из *.kar файла блок StartBlock="FF0305576F726473" EndBlock="FF2F00"
2. Из него побайтно читать и анализировать : FF - да, 01 - да, читаем следующий байт и читаем полученное число символов.

А для извлечения титров я тебе дал табличку с @символ.


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Ответов: 1535
Рейтинг: 176
#14: 2010-08-19 13:20:40 ЛС | профиль | цитата
Tad писал(а):
он должен выбрать из блока, начинающегося со слова Words (FF0305576F726473)

К сожалению, в некоторых *.kar файлах слово Words вообще не входит - оно отсутствует. Уже проверил, из 6000 выбрал 5000. Неэфективно.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#15: 2010-08-19 13:42:26 ЛС | профиль | цитата
nesco писал(а):
Понятно, значит -- два перевода строки ?
Для текста да.
А вообще-то "ѓ" может быть "маленькое" и "большое". Это время "заполнение музыкой" , так называемый проигрыш (соло музыкантов), т.е. звучит только музыка - певец отдыхает .

------------ Дoбавленo в 13.35:
nesco писал(а):
Понятно, значит -- два перевода строки ?
Для текста песни - да.
А вообще-то "ѓ" может быть "маленькое" и "большое". Это время "заполнение музыкой" , так называемый проигрыш (соло музыкантов), т.е. звучит только музыка - певец отдыхает .

------------ Дoбавленo в 13.42:
ser_davkin писал(а):
К сожалению
Ну а просто задать начало блока FF03 не пробовал ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:ser_davkin
Сообщение
...
Прикрепленные файлы
(файлы не залиты)