搜索 社区服务 统计排行 帮助
  • 1698阅读
  • 3回复

[已解决]MeGui更新到0.3.0.2005,遇到问题~

楼层直达
级别: 新手上路
注册时间:
2003-08-30
在线时间:
28小时
发帖:
237


用D2V Creator打开vob就报错,有没有遇到同样问题的?不知道是我机器问题还是下边的这个更新的bug:
- (kurtnoise) [DGIndexer] updated command line in order to retrieve trackIDs.
- (kurtnoise) [VobinputWindow] added a checkedListbox component to select audio tracks & the code to parse the IFO file.
级别: 圣骑士
注册时间:
2003-02-20
在线时间:
79小时
发帖:
1605
只看该作者 1楼 发表于: 2008-09-02
DGIndex本来就有gui,所以从来都不需要去megui里开

嗯。。。
级别: 新手上路
注册时间:
2004-08-01
在线时间:
4小时
发帖:
480
只看该作者 2楼 发表于: 2008-09-02
可能是
(kurtnoise) [DGIndexer] updated command line in order to retrieve trackIDs.
造成的bug,错误的意思是数组越界。
------------------------------------
更正,刚才看了一下源代码,megui的那个d2vcreater只支持DVD盘中的vob,或者说只支持文件名为vts*.vob的vob。
src
  1. public static string DetermineMovieIFO(string inputPath)
  2. {
  3. // The first 7 characters are the same for each VOB set, e.g.
  4. // VTS_24_0.VOB, VTS_24_1.VOB etc.
  5. string[] vobFiles = Directory.GetFiles(inputPath, "vts*.vob");
  6. // Look for the largest VOB set
  7. string vtsNameCurrent;
  8. string vtsNamePrevious = Path.GetFileName(vobFiles[0]).Substring(0, 7);
  9. long vtsSizeLargest = 0;
  10. long vtsSize = 0;
  11. string vtsNumber = "01";
  12. foreach (string file in vobFiles)
  13. {
  14. vtsNameCurrent = Path.GetFileName(file).Substring(0, 7);
  15. if (vtsNameCurrent.Equals(vtsNamePrevious))
  16. vtsSize += new FileInfo(file).Length;
  17. else
  18. {
  19. if (vtsSize > vtsSizeLargest)
  20. {
  21. vtsSizeLargest = vtsSize;
  22. vtsNumber = vtsNamePrevious.Substring(4, 2);
  23. }
  24. vtsNamePrevious = vtsNameCurrent;
  25. vtsSize = new FileInfo(file).Length;
  26. }
  27. }
  28. // Check whether the last one isn't the largest
  29. if (vtsSize > vtsSizeLargest)
  30. vtsNumber = vtsNamePrevious.Substring(4, 2);
  31. string ifoFile = inputPath + Path.DirectorySeparatorChar + "VTS_" + vtsNumber + "_0.IFO";
  32. // Name of largest VOB set is the name of the IFO, so we can now create the IFO file
  33. return ifoFile;
  34. }



string[] vobFiles = Directory.GetFiles(inputPath, "vts*.vob");
这句代码限定了打开vob的文件名,当打开的vob文件所在目录中没有包含vts*.vob命名方式的vob时,vobFiles数组为空,当代码执行到
string vtsNamePrevious = Path.GetFileName(vobFiles[0]).Substring(0, 7);
时vobFiles[0]就产生数组越界。

überm Sternenzelt richtet Gott, wie wir gerichtet.

Girls
Usually
Need
Diamond
And
Money
级别: 新手上路
注册时间:
2003-08-30
在线时间:
28小时
发帖:
237
只看该作者 3楼 发表于: 2008-09-02
谢谢uc0083,DGIndex的gui没问题。
谢谢squall617,看来是命令行编写的问题。

问题已解决,请版主锁帖吧,谢谢。
快速回复

限150 字节
上一个 下一个