[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 15# 523066680

   
    非常感谢版主大人。

    刚测试了你更新后的代码,非常顺利,便于我把一些时间线不匹配的字幕找出来。
   
    这段代码与前面代码区别在哪里?
    你上一段代码只对UTF-8编码的文本起作用吗?

TOP

回复 14# 慕夜蓝化


    作为一个处女座,我还是没忍住安装了JDK,配置了环境变量,测试了那段JAVA代码。

结果
:6:错误:类BRDemo是公共的,应在名为BRDemo.java的文件中声明......bla bla

TOP

本帖最后由 523066680 于 2018-1-30 17:39 编辑

回复 16# allenyzq147

    上一段代码只对 utf8 gbk 之类(这类编码和 ASCII 码兼容)的编码起作用。现在的代码只对  utf16-le 编码起作用。
旧代码的问题以及原因:utf16-le 对 ASCII 范围的编码补0,扩充到两个字节,这样换行\r\n就不是 0d 0a, 而是 0d 00 0a 00,匹配换行的时候就会有差异。

TOP

回复 18# 523066680


    感谢版主大神这么耐心的解释。

    再次感谢所有答题的哥哥们。

TOP

回复 17# allenyzq147


    哈哈,你还是蛮可爱的。嗯,需要jdk8,你安装好之后。在桌面新建一个txt文档,将代码复制到文本中,并将文件名更改为BRDemo.java。保存完毕后,win7下shift鼠标右键->在此处打开命令窗口。输入 javac BRDemo.java 回车。 会生成一个class 文件。 然后,在命令窗口中继续输入 java BRDemo ,即可看到打印出的信息。如果在这个过程中有不明了的,可以加下我q,1451979729,也欢迎各位添加,共同交流。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

本帖最后由 WHY 于 2018-2-2 22:24 编辑
  1. function MergeFiles($chsFile, $engFile){
  2.     $hash = @{}; $s1 = $s2 = '';
  3.     ForEach($strLine In (type $chsFile)){
  4.         If($s1 -like '[0-9][0-9]:*') { $hash[$s1] = $strLine; }
  5.         $s1 = $strLine;
  6.     }
  7.     ForEach($strLine In (type $engFile)){
  8.         If($s2 -like '[0-9][0-9]:*'){$strLine + ' ' + $hash[$s2];}
  9.         $s2 = $strLine;
  10.     }
  11. }
  12. $chsDir = 'C:\Users\CH6\Desktop\TEDTXTUNICODE\chs1203';
  13. $engDir = 'C:\Users\CH6\Desktop\TEDTXTUNICODE\eng1246';
  14. $mergeDir = 'C:\Users\CH6\Desktop\TEDTXTUNICODE\merge';
  15. If(!(Test-Path $mergeDir)){$null = md $mergeDir;}
  16. ForEach($eng In (dir ($engDir + '\*.txt'))){
  17.     $chsFile = $chsDir + '\' + $eng.Name;
  18.     If(Test-Path $chsFile){
  19.         $arr = MergeFiles $chsFile $eng.FullName;
  20.         Set-Content ($mergeDir + '\' + $eng.Name) $arr -Enc unicode;
  21.     }
  22. }
  23. [Console]::Write('Done');
  24. [Console]::ReadLine()
复制代码

TOP

返回列表