Textprogramm erstellt + Word

Hallo,

ich habe ein Textprogramm mit VB erstellt. Das Open-Tool ist soweit programmiert. Der Input von .txt-Dateteien funktioniert problemlos. Aber wenn ich ein .doc-Dokument mit demselben Text in der gleichen Standard-Formatierung öffnen möchte, bekomme ich eine Fehlermeldung:

Laufzeitfehler ‚62‘
Einlesen hinter Dateiende

Ich habe schon vermutet, dass es an der etwas komplizierten Formatierung von Microsoft Word liegt, habe dann eine Datei mit einfacher Formatierung, die ich im eigenen Textprogramm auch erstellen kann, ausprobiert, aber die Fehlermeldung ist die gleiche.

Ich hoffe ihr könnt mir helfen

greetinx Patrick

doc ist nicht gleich txt
Hallo
ich würde mal sagen, das DOC nicht TXT ist, bei Word werden ja noch ganz andere Daten gespeichert, daher kannst du das niht einfach wie eine TXT-Datei öffnen. Aber das weiss doch jeder, oder verstehe ich dich jetzt falsch.

Mfg Werner

Hallo,

Laufzeitfehler ‚62‘
Einlesen hinter Dateiende

da hätte ein Stück Code geholfen. Wie liest Du denn? ‚Get‘ sollte immer funktionieren, auch wenn es mit anderen Methoden Probleme gibt.

Gruß, Rainer

Hallo Rainer,

da hätte ein Stück Code geholfen.

Ja, aber was für einer? Mein Programmtext:

Open DateiName For Input As DateiNummer
DateiGroesse = LOF(DateiNummer)
frmTextverarbeitung.txtTextfenster.Text = Input(DateiGroesse, DateiNummer)
Close DateiNummer

Wie liest Du denn? ‚Get‘ sollte immer funktionieren

Wie sollte ich lesen? ‚Get‘?

Ich hoffe du kannst Klarheit verschaffen!

Nochmals Danke im Voraus

Patrick

Hallo,

da hätte ein Stück Code geholfen.

Ja, aber was für einer? Mein Programmtext:

Ja, so wie jetzt. :smile:

Open DateiName For Input As DateiNummer
DateiGroesse = LOF(DateiNummer)
frmTextverarbeitung.txtTextfenster.Text =
Input(DateiGroesse, DateiNummer)
Close DateiNummer

Das ist das Problem, die Datei ist Binär und kann NULLCHARs enthalten, die kann die Inputfunktion nicht lesen.

Wie liest Du denn? ‚Get‘ sollte immer funktionieren

Wie sollte ich lesen? ‚Get‘?

Versuch mal das hie, das klappt! :smile:

 Dim txt As String
 DateiGroesse = FileLen(DateiName)
 txt = Space(DateiGroesse)
 Open DateiName For Binary As DateiNummer
 Get #DateiNummer, , txt
 Close DateiNummer
 frmTextverarbeitung.txtTextfenster.Text = txt

Gruß, Rainer

ist TXT doch gleich DOC???
Hi Rainer,
du willst mir sagen, das ich eine DOC-Datei genauso wie eine TXT-Datei einlesen kann???

Mfg Werner

Hallo Werner,

du willst mir sagen, das ich eine DOC-Datei genauso wie eine
TXT-Datei einlesen kann???

einlesen natürlich. Nur bekommst Du keinen text zu sehen, wenn du die Datei dann an ein Textfeld übergibst, sondern nur cryptische Zeichen, die aussehen, wie ein Maschinenprogramm. Parsen und in lesbaren Tect verwandeln muß man’s dann selbst noch, wenn man Word nicht verwenden will. OO tut nichts anderes, die verwenden ja nicht den Quellcode von Microsoft.

Gruß, Rainer

Hallo nochmal,

ich danke dir für die Hilfe, aber ich habe deinen Programmtext eingegeben und erhalte im Textfenster nur undefinierbare Zeichen.
Hast du vielleicht noch einen Tipp?

MfG

Patrick

Hallo,

ich danke dir für die Hilfe, aber ich habe deinen Programmtext
eingegeben und erhalte im Textfenster nur undefinierbare
Zeichen.

ja klar, was hattest Du erwartet? Dokumente enthalten nicht nur Text, die Texte können formatiert sein, sie können Bilder, Tabellen, Diagramme … enthalten, sogar Macros. Ich hatte angenommen, Daß Du vor hast, aus diesen Zeichen ohne Word den text zu lesen und anzuzeigen. So hatte ich Dein Ursprungsposting verstanden.

Hast du vielleicht noch einen Tipp?

Nein, ich habe keine Ahnung, wie Microsoft die Texte ablegt. Ob die Dokumentation öffentlich verfügbar ist, weiß ich nicht. Ich vermute aber nein.

Gruß, Rainer

Hallo Patrick,

zu deinem Problem :smile:

Auf deiner Weise liest du die Daten so ein wie sie im File stehen!
Liegt ein *.doc, *.rtf etc. Dokument vor, so stehen dort noch andere Informationen drinnen. Diese siehst du dann ergo als sogenannte Hyroglyphen. Aber das erwaehnte bereits Rainer :smile:

Für dein Vorhaben würde ich wiefolgt vorgehen.

Beim starten des Program’s prüfen ob MS Word installiert ist!
Wenn Nein, dann anzeige nur für reine TXT Files zulassen und dann deine Variante verwenden :smile:

Ist Word installiert kannst du so ziemlich jedes File anzeigen.
Du willst ein File öffnen. Lasse den Dialog aufgehen und dem Anwender eine Datei auswählen. Danach erstellst du einfach eine Instanz von Word ( nicht sichtbar) öffnest dort das File. Liest aus Word den Text aus und schreibst in dann in dein Textfeld. Danach einfach wieder die Instanz von Word schliessen und fertig ist der Husten.

Auf dieser Weise kannst du ziemlich jede Datei öffnen und sie anzeigen lassen :smile:

MfG Alex