qt/c++求援,有偿

在用qt/c++做一个文件比较软件,现在只实现了txt文件的比较,word文件的比较我看网上说可以用Spire.Doc读取Word文档中文本并将其另存为txt文本再进行比较,具体代码为

#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main() {
    //指定输入输出文档路径和文档名
    std::wstring data_path = L"Data\\";
    std::wstring inputFile = data_path + L"input.docx";
    std::wstring outputPath = L"Output\\";
    std::wstring outputFile = outputPath + L"GetText.txt";

    //加载一个Word文档
    Document* document = new Document();
    document->LoadFromFile(inputFile.c_str());

    //获取文档中的文本内容
    std::wstring text = document->GetText();

    //将提取的文本保存到txt文件中
    std::wofstream write(outputFile);
    write << text;
    write.close();
    document->Close();
    delete document;
}

自己搞了搞没弄好,有没有感兴趣的帮我加上word文件的比较功能,私信我,有偿


#include "Spire.Doc.o.h"
using namespace Spire::Doc;
int main() {
    Document* doc1 = new Document();
    Document* doc2 = new Document();
    std::wstring data_path = L"Data\\";
    std::wstring input1 = data_path + L"input1.docx";
    std::wstring input2 = data_path + L"input2.docx";
    bool result = false;
    try {
        doc1->LoadFromFile(input1.c_str());
        doc2->LoadFromFile(input2.c_str());
        result = doc1->Compare(doc2);

        if (result) std::wcout << "Files are equivalent." << std::endl;
        else std::wcout << "Files are different." << std::endl;
    }
    catch (System::Exception &e) {
        std::wcout << e.what() << std::endl;
    }
    doc1->Close();
    doc2->Close();
    delete doc1;
    delete doc2;
    return 0;
}

这段代码中,首先定义了两个 Document 对象 doc1 和 doc2,然后指定需要比较的两个 Word 文件的路径和名称,存储在 input1 和 input2 变量中。

在 try 块中,使用 LoadFromFile 方法将两个文件加载进 doc1 和 doc2 中。接着调用 Compare 方法比较两个文档是否相同。

最后根据比较结果输出相应的信息。当 result 的值为 true 时,表示文档相同,否则文档不同。注意,一旦出现异常,程序会跳转到 catch 块进行异常处理。

最后关闭两个文档并释放内存,结束程序。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/770451
  • 你也可以参考下这篇文章:Qt实现读取、显示、修改并保存txt文件
  • 除此之外, 这篇博客: Qt之文件读取与写入中的 txt文件写入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
       QFile file1("data1.txt");
        if(file1.open(QIODevice::WriteOnly|QIODevice::Truncate)){
            QDataStream out(&file1);
    
            out<<QString("周杰伦")
               <<QDate::fromString("1979-01-18","yyyy-MM-dd")
            <<(qint32)41;
            file1.close();
    
        }else{
            qDebug()<<file1.errorString()<<endl;
        }

     这里提一下的就是写入利用数据流QDataStream来实现写入,打开失败的时候可以调用errorString的方法实现打印调试信息。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^