2017-12-29 5 views
-2

Ich habe Fin verwendet, um in einer .doc-Datei zu lesen, und dann den gesamten Text in einer Zeichenfolge speichern. Als ich versuchte, die Zeichenfolge zu drucken, sah ich nur unbekannte Zeichen.Funktioniert Fin in C++ mit .doc-Dateien?

Wenn ich den Inhalt der DOC-Datei in eine TXT-Datei kopiert und dann die TXT-Datei in der Verwendung von Fin gelesen, hat alles funktioniert.

Meine Frage ist, ob fin mit komplexen Dateien (wie .doc) oder nur mit .txt-Dateien arbeitet. Ich hatte nur Text in meiner .doc-Datei (keine Grafiken oder irgendetwas), aber die Schriftart war Calibri, was nicht die Schriftart ist, die fout verwendet, um Text in eine .doc-Datei zu drucken.

+0

Warum müssen Sie eine '.doc' Datei lesen? Was hast du vor damit zu tun?Welche genauen Informationen müssen Sie daraus extrahieren? Bitte ** bearbeiten Sie Ihre Frage **, um es zu verbessern –

Antwort

1

Wenn mit fin meinst du einen fistream ja es wird funktionieren, um den Dateiinhalt zu lesen, aber im Falle von komplexen Dateien müssen Sie mit dem Dateiformat umgehen, wird die C++ Bibliothek nicht nur nur den Text Inhalt automatisch extrahieren. In dem Fall, in dem Sie die Datei als Text gespeichert haben, ist das alles, was übrig ist, und das ist alles, was ein Stream lesen würde.

1

fstream Standardmäßig verwenden alle Operationen im Textmodus und in DOC-Dateien das binäre MS-DOC-Dateiformat. Wenn Sie also versuchten, die doc-Datei zu lesen und auszudrucken, wurden Zeichen angezeigt, die Sie nicht verstehen konnten (wahrscheinlich war das eine Binärdatei).

Wenn Sie versuchen, eine Datei in fstream zu lesen, liest sie es.

Ich habe versucht, eine .mp4-Datei im Binärformat mit fstream lesen und es hat die Datei gelesen (ich kann sicherstellen, dass, weil ich den gelesenen Inhalt in eine andere Datei eingefügt und diese Datei stellte sich heraus, um das gleiche Video sein).

Also beantworten Sie Ihre Frage ist, können Sie jede Datei in fstream lesen, aber fstream macht all diese Operationen auf nur zwei Arten, entweder Text oder Binär. Das Lesen von nur jeder Datei wird nicht viel nützen, es sei denn, Sie möchten etwas wie das Kopieren der Dateiinhalte in ein anderes tun.

1

Sie müssen zuerst die .docfile format verstehen. Lesen Sie zuerst die doc (computing) Wikipage. Es ist sehr komplex (so dass Sie mindestens Monate Arbeit brauchen), aber mehr oder weniger dokumentiert.

Sie könnten einen anderen Ansatz für Ihr Gesamtziel in Betracht ziehen. Zum Beispiel, wenn Sie eine .doc Datei (bereitgestellt von einigen Microsoft Word Software) analysieren müssen, könnten Sie libreoffice verwenden, die eine Bibliothek bereitstellt, um es zu analysieren, oder Sie könnten eine andere Bibliothek (zB DocxFactory, wvware, ...) oder Sie finden könnte einige COM Schnittstelle zu Word (auf einem Microsoft Windows-Betriebssystem mit MicroSoft Word installiert) verwenden.

Wenn Ihr Ziel ist ein Dokument zu erzeugen ist, könnten Sie das PDF Format (das ist ein Standard), vielleicht etwas text formatter wie LaTeX oder Lout Verwendung zu erzeugen oder eine Bibliothek (zB cairo, PoDoFo, etc .. .).

Meine Frage ist, ob Finne Arbeiten mit komplexen Dateien (wie .doc)

BTW, C++ standard IO Binär-Dateien lesen kann, aber Sie müssen Ihre parser für sie schreiben (so Sie muss genau Ihr Dateiformat verstehen). Sie sollten open formats zu bevorzugen.

Verwandte Themen