procedure TFormVOBProcessing.ReadVobList(var FPN : string);
var
C, K : integer;
D, R : smallint;
FileName, FilePath : String;
FN, Ext, SearchMask : string;
SearchRec1, SearchRec2, SearchRec3 : TSearchRec;
begin
FileListVideo.Create;
FileListVst.Create;
FileListVobSub.Create;
FileName := ExtractFileName(FPN);
FilePath := ExtractFilePath(FPN);
Ext := ExtractFileExt(FPN);
Case Ext of
'.IFO' : SearchMask := LeftStr(FileName,7) + '*';
'.BUP' : SearchMask := LeftStr(FileName,7) + '*';
'.VOB' : SearchMask := LeftStr(FileName,7) + '*';
'.IDX' : SearchMask := FileName;
'.SUB' : SearchMask := FileName;
end;
FileListVideo := FindAllFiles(FilePath, SearchMask, true, faDirectory);
C := FileListVideo.Count - 1;
R := 1;
if LeftStr(SearchMask,8) <> 'VIDEO_TS' then
begin
if LeftStr(SearchMask,4) = 'VTS_' then
begin
for D := 0 to FileListVideo.Count -1 do
begin
if FindFirstUtf8(FilePath, faAnyFile and faDirectory, SearchRec1)=0 then
begin
repeat
With SearchRec1 do
begin
FN := FileListVideo.Strings[D];
Ext := ExtractFileExt(FN);
K := FileSizeUtf8(FileListVideo.Strings[D]);
Case Ext of
'.IFO' : StringGridVob.InsertRowWithValues(R,['0',
ExtractFileName(FN), IntToStr(K)]);
'.VOB' : StringGridVob.InsertRowWithValues(R,['1',
ExtractFileName(FN), IntToStr(K)]);
'.BUP' : Continue;
'.srm' : Continue;
'.SRM' : Continue;
end;
inc(R, 1);
end;
until FindNextUtf8(SearchRec1) <> 0;
end;
FindCloseUtf8(SearchRec1);
end;
end;
end;
if Ext = '.IDX' then
begin
for D := 0 to FileListVideo.Count -1 do
begin
if FindFirstUtf8(FilePath, faAnyFile and faDirectory,SearchRec2)=0 then
begin
repeat
//inc(D, 1);
With SearchRec2 do
begin
FN := FileListVideo.Strings[D];
K := FileSizeUtf8(FileListVideo.Strings[D]);
StringGridVob.InsertRowWithValues(R,['1',
ExtractFileName(FN), IntToStr(K)]);
inc(R, 1);
end;
until FindNextUtf8(SearchRec2) <> 0;
end;
FindCloseUtf8(SearchRec2);
end;
end;
if Ext = '.SUB' then
begin
for D := 0 to FileListVideo.Count -1 do
begin
if FindFirstUtf8(FilePath, faAnyFile and faDirectory,SearchRec3)=0 then
begin
repeat
With SearchRec3 do
begin
FN := FileListVideo.Strings[D];
K := FileSizeUtf8(FileListVideo.Strings[D]);
StringGridVob.InsertRowWithValues(R,['1',
ExtractFileName(FN), IntToStr(K)]);
inc(R, 1);
end;
until FindNextUtf8(SearchRec3) <> 0;
end;
FindCloseUtf8(SearchRec3);
end;
end;
if LeftStr(SearchMask,5) = 'VIDEO' then
MessageDLG('Choose either a VTS_*.IFO, VTS_*.VOB or an *.IDX or *.SUB file',
mtInformation,[mbOk],0);
LabelVobPath.Caption := FilePath;
LabelVobPath.Hint := FilePath;
RefreshLanguageList;
end;