[网友投稿] MDictindle:MDX 词典转 MOBI 词典辅助工具

延伸阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 9 条留言

  1. 关于教程里头:
    0x02、把 .txt 转化为 .opf

    “使用命令行,输入命令:

    MDictindle.exe [–clean-dict(建议启用)] [–css ]

    如:

    $ ./MDictindle.exe oxford.txt --clean-dict --css oald10.css
    MDictindle v0.2.0 : 转换 Mdx 到 Mobi 的桥梁

    这里头的路径究竟是怎么输入呢?你里头也没有路径啊。
    “$ ./” 这个是需要加吗??

    请解答以下, 感谢

    • 假设你把 MDictindle.exe 放在了桌面上,如果在命令提示符上的当前目录就是桌面,则可使用相对路径 ./MDictiondle.exe,如果是在桌面上的子目录中,则可使用相对路径 ../MDictiondle.exe,否则需要使用绝对路径:

      C:\Users\YOURNMAE\Desktop\MDictindle.exe

      注意要把里面的 YOURNAME 换成你的系统用户名。

  2. MDictindle.exe v.0.2 无法运行,总是闪退。 ! 已经安装了runtime~~有办法吗?谢谢。
    另外后面那两个resourse 是什么?需要安装吗

    • 想知道后来解决了吗?试了好多次都没办法成功,用第一版又会卡在最后一步。

  3. 每次使用都显示:

    程序将依次执行第零步至第三步。
    部分参数及输出文件如下:
    源文件: ecd.txt
    执行第零步: 是
    CSS 路径:
    输出的OPF: ecd.opf
    第零步开始:清除图片、音乐、JS、无效链接等 Kindle 上无法正常使用的功能
    第零步完成!
    第一步开始:读取词典到数据库

    致命:未知错误
    ==========详细信息==========
    code = Constraint (19), message = System.Data.SQLite.SQLiteException (0x800027AF): constraint failed
    UNIQUE constraint failed: Dictionary.Id
    at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
    at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
    at System.Data.SQLite.SQLiteDataReader.NextResult()
    at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
    at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
    at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
    at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
    at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
    — End of stack trace from previous location —
    at MDictindle.DictManager.AddEntryAsync(String name, String explanation)
    at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
    at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
    at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
    at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
    at MDictindle.Step.AbsStep.AutoDo(DictManager manager, TextWriter logger)
    at MDictindle.Program.RunOptions(Options opt)

    这是为什么啊

    • 兄弟,不知道为啥我每次都会把c盘点空间用完,然后就报错了。能来c盘还剩30个g,这个命令执行到这的时候c盘点temp文件就突然多了30个g(我网上查了temp是临时文件,可以直接删除),反正最后就是到这一步就报错了,磁盘空间已经满了。
      部分参数及输出文件如下:
      源文件: 1.txt
      执行第零步: 是
      CSS 路径: vocabulary.css
      输出的OPF: 1.opf
      第零步开始:清除图片、音乐、JS、无效链接等 Kindle 上无法正常使用的功能
      第零步完成!
      第一步开始:读取词典到数据库
      第一步:读取完成,正在处理变形词…

      致命:未知错误
      ==========详细信息==========
      code = Full (13), message = System.Data.SQLite.SQLiteException (0x800007FF): database or disk is full
      database or disk is full
      at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
      at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
      at System.Data.SQLite.SQLiteDataReader.NextResult()
      at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
      at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
      at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
      at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
      — End of stack trace from previous location —
      at MDictindle.DictManager.AddEntryForInflAsync(String name, String explanation, String infls)
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.DictManager.MakeInflsAsync()
      at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
      at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
      at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
      at MDictindle.Step.AbsStepOne.DoAsync(DictManager manager, TextWriter logger)
      at MDictindle.Step.AbsStep.AutoDo(DictManager manager, TextWriter logger)
      at MDictindle.Program.RunOptions(Options opt)
      PS C:\Users\Lenovo\Desktop\新建文件夹\new\尝试1>

      • 我又换了本字典尝试了一下,发现可以成功。
        程序将依次执行第零步至第三步。
        部分参数及输出文件如下:
        源文件: cls.txt
        执行第零步: 是
        CSS 路径: glpa.css
        输出的OPF: cls.opf
        第零步开始:清除图片、音乐、JS、无效链接等 Kindle 上无法正常使用的功能
        第零步完成!
        第一步开始:读取词典到数据库
        第一步:读取完成,正在处理变形词…
        第一步完成!
        第二步开始:处理链接
        第二步:共有 36541 个条目需要处理,请耐心。除最前面的 2000 条目和最后的几千条目外,每个条目所花费的时间大致相同
        第二步:已经处理了 4000 个条目
        第二步:已经处理了 16000 个条目
        第二步:已经处理了 22000 个条目
        第二步:已经处理了 30000 个条目
        第二步:已经处理了 34000 个条目
        第二步完成!
        第三步开始:写出到文件
        第三步完成!
        成功!耗时 10.704 秒。
        现在,您可以编辑 cls.opf 中的内容,之后使用 mobigen 或 prcgen 生成词典!
        按下任意键继续…

  4. 教程可用,制作出的字典有变形词。请问我制作出的字典拖入kindle,字典名显示很多个?要怎么解决呢?