دوست عزیز من متاسفانه وقت نکردم واست اون سورسو بسازم
اما وقتی یکی از همین نرم افزار های ادیت ساب تایتل رو دیدم متوجه قضیه شدم
همچنین وقتی یه فایل زیرنویس رو برسی کردم
اصلا کاری نداره
در کانستراکت و زبان های برنامه نویسی سطح بالا ، مقوله ای به نام اسپلیت (split) داریم که با استفاده از اون میتونی کار ها رو انجام بدی :
نمونه من این خط رو از فایل متنی دریافت کردم :
کد:
Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,میدونی بخاطر همین چقدر تو دردسر افتادیم؟
اینجا باید از اسپلیتور استفاده کنید که در اکسپرشن های سیستم هست و کلمه Dialogue رو جدا کنید
اینجوری :
کد:
tokenat("Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,میدونی بخاطر همین چقدر تو دردسر افتادیم؟",1, ": ")
یه توضیح راجع به توکن ات
توکن ات متنی رو میگیره و بر اثا یه سری تنظیمات اونو به دو قسمت تقسیم می کنه
اینکه از کجا و چجوری و کدوم قسمت رو نمایش بده دست شماست
وقتی اکسپرشن سیستمی توکن ات رو وارد می کنید همچین چیزی میبینید :
کد:
tokenat(Text, Index, Separator)
خوب ما باید هر سه قسمت رو پر کنیم
قسمت اول text که ما همون مقدار
"Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,میدونی بخاطر همین چقدر تو دردسر افتادیم؟"رو وارد می کنیم
بعد میریم سراغ قسمت سوم یعنی separator ( ایندکس رو بعد توضیح میدم)
خب اینجا مقدار " :" بهش میدیم
حالا سیستم قسمت پشت " :" رو از قسمت بعد از اون جدا کرد. یعنی :
0 : Dialogue
1 : 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,میدونی بخاطر همین چقدر تو دردسر افتادیم؟
اما سیستم از کجا بداند که ما کدا بخش را می خواهیم ؟؟
اینجاست که باید ایندکس رو توضیح بدم
ایندکس میخواد بدونه کدوم قسمت رو میخوای
ممکنه تعداد این بخش ها بیشتر از دو تا هم باشه
پس ما میایم و مقدار ایندکس رو میزاریم روی 1 یعنی من مقدار شماره یک رو میخوام. (توجه شمارش از صفر شروع میشه)
چون ما میخوایم که کلمه Dialogue حذف بشه بنار این به ما مقدار
0,0:04:16.79,0:04:18.91,Default,,0,0,0,,میدونی بخاطر همین چقدر تو دردسر افتادیم؟ رو دریافت خواهیم کرد
این مساله برای بقیه قسمت ها هم میتونه استفاده بشه.