Im пытается сортировать мои телешоу из моих фильмов, и я решил, что лучший способ сделать это - идентифицировать их в сезонах сериала и эпизоде.Delphi - как проверить, содержит ли строка заданный формат символов
все мои телешоу имеют следующий формат S00E00.
попробовал следующую
if (Pos(IntToStr(I), SR.Name) > 0) and (Pos('S', SR.Name) > 0) then
result := true;
, но это не работает, потому что если фильм имел титул Содержащие «s» и любое количество его скопирует его в поперечнике.
нужно будет что-то вроде если строка поз «буквы с последующим целым числом, целым числом, буквой е, целое число, целое число», то результат: = истинный
был независимо, если этот эпизод S01E03 или S09E12 будет по-прежнему копировать ,
.........................................
отредактировано 12/22/2015
.........................................
Спасибо Реми не думал, что это будет так просто.
вот процедура, которую необходимо прояснить.
procedure TForm7.TvShowCopy (Format: string);// Format would be .mp4 or whatever you're using but since the procedure searches for a name matching "S00E00" format I suppose you wouldn't need the format and could just use *.*.
begin
aTvshowFiles := TDirectory.GetFiles(STvshows,format,// aTVshowfiles is a TStringDynArray , STvshows is the Source directory for the TV shows.
TSearchOption.soAllDirectories,
function(const Path: string; const SR: TSearchRec):Boolean
begin
result:= TRegEx.IsMatch(SR.Name, 'S[0-9][0-9]E[0-9][0-9]')
end);
CopyFilesToPath(aTvshowFiles, DTvshows);
end;
проверено и будет работать.
T шляпа звучит как работа для регулярных выражений. –
Какая версия Delphi? И где хранятся данные (в памяти, в базе данных или где-то еще)? Вам нужно добавить дополнительные сведения. Пожалуйста, отредактируйте свой вопрос, чтобы сделать это, вместо того, чтобы добавлять их через комментарии. –
@KenWhite: 'SR.Name' подразумевает, что используется TSearchRec', что будет означать, что перечисление имен файлов используется. –