Help
9 отговора
485 прегледа
Help
Написал съм програма за гледане на филми. Искам програмата да може да отваря и показва субтитри. Как да я напиша?
Re: Help
Ееееееее ама ти си бил абсолютно роботче!!! От както ти чета нещата, поне 4-5 неща гледам че направи, и то все в най-различни сфери, една с една нямат нищо общо... Браво! Аз от Ноември, миналата година бутам една програмка, и като се гледам още 2-3 месеца ще я влача... Браво, радваш ме 

Re: Help
Хора нямали кой да ми помогне? Ивко благодаря за мнението. 

Редактирано от Wacker_1987 на
Re: Help
Файловете със субтитри обикновено са текстови, като съдържат информация за времето (или броя кадри) на показване и скриване на надписа. Отвори си някой файл и го разгледай - формата е елементарен. Просто трябва да го заредиш в подходяща структура в твоята програма и да изобразяваш надписите в прозореца на филма, като следиш броя кадри или отместването във времето от началото на филма за съответния надпис. Е, може да сложиш и някоя и друга екстра - шрифт, smooth, автопозоциониране и т.н. Успех!
Mixy
Mixy
Re: Help
Mixy благадаря за обеснението, знам структурата на субтитрения файл.
При зареждането на файла правя текстов поток, до тук добре. Да вземем например един ред от субтитрения файл: {500}{1000}По истински случай. Как да нагласа програмата да разчита числото при отваряне и числото при затваряне на субтитара.
Re: Help
Майтапиш се, нали? Цял плеър си написъл, а не можеш да обработиш стринг?!
В случай, че не е на майтап, ето малко помощ. Да приемем, че имаш стринг A:='{123}{456}'. Можеш да откриеш всяка отделна буква (знак - char), като прочетеш нейната позиция. Напр. A[1] в твоя случай ще бъде '{', а пък A[5] ще е '}'. Организирай цикъл и си извлечи в отделни променливи низовете между отварящите и затварящите тагове. Ще трябва да получиш A1='123' и A2='456'. След това използвай стандартната функция strtoint за да конвертираш низа в число - получаваш началния и крайния кадър за които трябва да следиш във филма и текстовия поток. И най-вече, хвърли едно око на String handling routines в хелпа на Delphi. Tам ще откриеш доста мощни процедури и функции за работа с низове, пък може да ти хрумне и нещо различно (и по-добро) от моя вариaнт.
Mixy
P.S. Като стане работата, дай някакъв линк към твоята програмка (ако е freeware), че BSPlayer-a нещо ме дразни напоследък, а аз всичко българско и родно, любя, тача и милея.
В случай, че не е на майтап, ето малко помощ. Да приемем, че имаш стринг A:='{123}{456}'. Можеш да откриеш всяка отделна буква (знак - char), като прочетеш нейната позиция. Напр. A[1] в твоя случай ще бъде '{', а пък A[5] ще е '}'. Организирай цикъл и си извлечи в отделни променливи низовете между отварящите и затварящите тагове. Ще трябва да получиш A1='123' и A2='456'. След това използвай стандартната функция strtoint за да конвертираш низа в число - получаваш началния и крайния кадър за които трябва да следиш във филма и текстовия поток. И най-вече, хвърли едно око на String handling routines в хелпа на Delphi. Tам ще откриеш доста мощни процедури и функции за работа с низове, пък може да ти хрумне и нещо различно (и по-добро) от моя вариaнт.
Mixy
P.S. Като стане работата, дай някакъв линк към твоята програмка (ако е freeware), че BSPlayer-a нещо ме дразни напоследък, а аз всичко българско и родно, любя, тача и милея.
Редактирано от Mixy на
Re: Help
Мани обработката на низа. На мен ми трябва програмата да разпознава от къде започва писаното, защото може да не започва от началото на низа. Примерно:
S: string;
S := '{500}{1000}Text'; или S := ' {500}{1000}Text'; или
S := ' {500} {1000} Text';.
Трябва ми да разпознава къде почва и къде свърша писаното по низа. Това ми е чялата дилема. Благодаря предварително.


S: string;
S := '{500}{1000}Text'; или S := ' {500}{1000}Text'; или
S := ' {500} {1000} Text';.
Трябва ми да разпознава къде почва и къде свърша писаното по низа. Това ми е чялата дилема. Благодаря предварително.
Re: Help
Ами.....ето как аз бих го направил. Просто караш един while докато не стигне6 първата скоба. После пак караш така като четеш вече стринг-а и си го запомняш докато попаднеш на затваряща скоба.После пак същото и за втората част от субтитрите. Останалото вече ти е текста за изписване. Еми, дано съм ти помогнал (макар, че не е нищо ново).