【问题标题】:gnucash xml and sqlite file formatgnucash xml 和 sqlite 文件格式
【发布时间】:2016-11-24 19:12:45
【问题描述】:

我正在开发一个简单的数据库。 对我来说,这是我第一次使用 gnucash,我必须使用它。 当我保存我的数据库时,我希望有一个 .xml 或 sqlite 格式的文件,但是在我的保存文件夹中单击“另存为”后,我只看到一个 .gnucash 格式的文件和 .log 文件,而不是 xml 或 sqlite 格式的文件。 我必须在 Java IDE 中管理这些文件。 这个问题有解决办法还是可以直接用Java直接管理.gnucash文件格式?

【问题讨论】:

    标签: java gnucash


    【解决方案1】:

    发件人:http://wiki.gnucash.org/wiki/File

    如何编辑文件?

    文件本身是 XML 数据,但采用压缩形式(由 gzip 程序压缩)。

    这根据编辑->首选项->常规中的首选项设置打开或关闭,您可以在其中设置或取消设置文件压缩处的复选标记。默认情况下它是激活的。

    为了通过文本编辑器查看您的数据,您需要打开一个终端窗口(控制台窗口)并输入以下命令:

    mv foobar foobar-copy.gz
    gunzip foobar-copy.gz
    

    当然,您需要将“foobar”替换为您的实际文件名。 > 输入这两个命令后,您可以在文本编辑器中打开生成的文件“foobar-copy”。

    当您打算进行一些手动更改时,如我们所做的那样,请确保在某处备份您的原始文件,以防出现问题。在这种情况下,原始文件“foobar”是完整的。

    编辑并保存文件后,您不必自己 gzip; GnuCash 将在下次保存时执行此操作。

    简而言之,xml 文件(我推测是 sqlite 文件)已被压缩,您需要先解压缩它们,然后才能对其进行编辑。或者你可以告诉 GNUCash 跳过压缩。

    【讨论】:

    • 好的,我已经解决了我的问题,只需使用记事本或文本编辑器打开 gnucash 文件。但是当我打开保存为 xml 的 gnucash 文件时(例如),我没有找到我插入的值。这些值必须在 Java 中管理
    • 我无法帮助您,我还没有检查它的外观。您是否尝试查找交易的部分内容。比如你在【Wallet】里放了东西,描述为【Walmart】,价格为24.50;自己没有看过 xml 可能类似于 2450 也许搜索一个已知的支票号码并查看那里的结构形式。
    • 好的,我找到了我在 xml 文件中插入的值。唯一奇怪的是值不是整数,而是除以 100 的数字。例如,如果我插入 900,00$,xml 文件返回 90000/100。我可以修改 Preferences 中的参数以查看以正确方式插入的值吗?
    • 我不知道你是否可以在首选项中修改它。然而 /100 似乎表明他们没有将货币值存储为浮点数,而是将其存储为整数并将其除以 100。所以说 19.99 是 1999/100。所以你可以在你的java中解析那个逻辑。您可能想阅读 wiki.gnucash.org/wiki/GnuCash_XML_formatgithub.com/sdementen/piecash 后者是 gnucash 的 python 解析器,它可能暗示了它们的作用,或者可能是您在 python 而不是 java 中寻找的内容。
    猜你喜欢
    • 1970-01-01
    • 2014-11-02
    • 2013-01-05
    • 2020-08-23
    • 1970-01-01
    • 2011-06-18
    • 2013-08-06
    • 2013-03-13
    • 2016-08-26
    相关资源
    最近更新 更多