У меня проблема в Delphi7. Мое приложение создает видеофайлы mpg в соответствии с установленным соглашением об именах, т.е.
\ 000_A_Title_YYYY-ММ-DD_HH мм ss_Index.mpg
В этом имени файла применяются следующие правила:
000
- это видео последовательность. Увеличивается всякий раз, когда пользователь нажимает «Стоп».
A
(или B, C, D) указывает записывающую камеру - поэтому видеофайлы связаны с максимум четырьмя видеопотоками, которые воспроизводятся одновременно.
Title
- строка переменной длины. В моем приложении он не может содержать _
.
YYYY-MM-DD_HH-mm-ss
- это время начала видеопоследовательности (не одного файла)
Index
является индексом порядка нуля и увеличивается в течение 1 видеопоследовательности. То есть видеофайлы имеют максимальную продолжительность 15 минут, как только это достигается, новый видеофайл запускается с тем же порядковым номером, но со следующим индексом. Используя это, мы можем вычислить фактическое время начала файла (Filename decoded time + 15*Index)
Используя этот метод, мое приложение может извлечь время начала записи видеофайла.
Теперь у нас есть еще одно требование для обработки произвольно названных видеофайлов. Единственное, что я точно знаю, это то, что где-то в имени файла будет ГГГГ-ММ-ДД ЧЧ-мм-сс.
Как я могу разрешить пользователю указывать соглашение об именах файлов для импортируемых им файлов? Что-то вроде регулярных выражений? Я понимаю, что в схеме именования должен быть образец.
Итак, если пользователь вводит ?_(Camera)_*_YYYY-MM-DD_HH-mm-ss_(Index).mpg
в текстовое поле, как мне узнать время начала? Есть ли лучшее решение? Или мне просто нужно использовать каждую возможность, когда мы сталкиваемся с ними?
(я знаю, что это, вероятно, не лучший способ справиться с такой проблемой, но мы не можем изменить проблему - новые видеофайлы записываются другой компанией)