Ausgabe als DOC-Datei [erledigt]

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Ausgabe als DOC-Datei [erledigt]

Beitrag von peternmb »

Hallo,
wenn ich eine einfache Text-Datei als .doc speichere, öffnet sich in Word immer ein nerviges Fenster für die Dateikonvertierung.
Dann muss die Vorgabe "Windows - Standard" und "Westeuropäisch" bestätigt werden. Kann ich das irgendwie verhindern bzw. umgehen?

Die doc-Datei erzeuge und öffne ich so:

Code: Alles auswählen

tdatei:="Testdatei.doc"
set console off
set printer to (tdatei)
set printer on
//
? "mein Text usw."
//
set printer off
set printer to
set console on
//
OpenRegisteredFile(tdatei)
Zuletzt geändert von peternmb am Mi, 10. Okt 2012 17:32, insgesamt 1-mal geändert.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Ausgabe als DOC-Datei

Beitrag von georg »

Hallo, Peter -


in solchen Fällen greife ich auf OfficeAutomation zurück (siehe AutomationObject() und entsprechende Beispiele).

Dort kannst Du dann - quasi wie in einem Makro - alle Eingaben aus dem Xbase Programm vornehmen (und auch Verhindern, dass das Word-Fenster sichtbar wird).
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von brandelh »

Hi,

DOC ist die Dateiendung für das alte Microsoft Dokumentenformat.
Erkennt Word Text, muss es umwandeln.

Je nach Aufgabe, kann man entweder über ActiveX Word direkt steuern (dafür gibt es Beispiele hier und bei Xbase++),
das XML (für Word) oder RTF Format nutzen.
Die letzteren sind reine Textformate und man benötigt kein installiertes Word auf dem Rechner.
Allerdings muss an sich zuerst ein Grundgerüst erstellen, dass man mit Text füttern kann.
XML und Excel verwende ich bei einer meiner Anwendungen (Erklärung in Wissensbasis), was solange geht wie man die Vorlage nicht ändern will.
Dann wird es haarig ;-)

Active X ist sicher am einfachsten in der Anwendung, wenn Word installiert ist.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von Tom »

Erkennt Word Text, muss es umwandeln.
Das hängt von der Art des Textes ab. Speichere ich das "Hallo, Welt" in "testtext.doc" und klicke doppelt, erscheint Word mit Schriftarteinstellungen gemäß Standardvorlage und zeigt, ohne weiter zu mucken, den Test "Hallo, Welt" an. Das tut es in allen Versionen, die ich hier zur Verfügung habe - und das sind viele.

Ich glaube auch nicht, dass sich Word beim (hier recht originellen) Erzeugen (also beim Speichern, wie es in der Ausgangsnachricht lautet) der Textdatei meldet. Sondern bei Aufruf (OpenRegisteredFile). Das liegt daran, dass der Text wahrscheinlich Sonderzeichen (Umlaute, ß usw.) enthält, also irgendwas außerhalb des 7-Bit-Bereichs. Dafür gibt es Umsetzungstabellen, aber die Suche ist mir zu mühevoll.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von brandelh »

umwandeln muss er in jedem Fall ! Möglich dass er das auch automatisch tut, bei mir kommt eine Fehlermeldung (Office Word 2003 unter XP)

"Konverter kann nicht gestartet werden ...", vermutlich nicht richtig installiert oder registriert (oder noch nicht) . Hilfe gibt es auch auf dem Meldungsfenster ;-)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von Tom »

@Hubert: Klar muss umgewandelt werden, aber bei 7-Bit-ASCII erfolgt das (wenn Word richtig installiert ist :wink: ) ohne Rückfrage.
Herzlich,
Tom
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: Ausgabe als DOC-Datei

Beitrag von peternmb »

Tom hat geschrieben:Ich glaube auch nicht, dass sich Word beim (hier recht originellen) Erzeugen (also beim Speichern, wie es in der Ausgangsnachricht lautet) der Textdatei meldet. Sondern bei Aufruf (OpenRegisteredFile). Das liegt daran, dass der Text wahrscheinlich Sonderzeichen (Umlaute, ß usw.) enthält, also irgendwas außerhalb des 7-Bit-Bereichs. Dafür gibt es Umsetzungstabellen, aber die Suche ist mir zu mühevoll.
Ja, das ist es. Ohne Umlaute kein Problem - mit Umlaute im Text startet die Konvertierung.
Jetzt weiss ich wenigstens warum, aber eine (einfache) Lösung gibt es dann dafür anscheinend nicht :(
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von Tom »

Hallo, Peter.

Es gibt, wie ich schrieb, Ersetzungstabellen - einfach mal suchen (etwa nach Begriffen wie "WORD" "ASCII" und "Konvertierung"). Die erlauben es Dir, bereits beim Erzeugen des Textes Ersetzungszeichen einzufügen, etwa "^u" für ein "ü" (stimmt nicht, ist nur ein Beispiel). Dafür müsstest Du dann eine schlichte Funktion bauen (StrTran). Oder Du schmeißt beispielsweise Umlaute raus, indem Du "ü" gegen "ue" austauschst - usw. Aber das ist sicherlich nicht im Interesse der Anwendung.

Eleganter ist es, den Text auch schon mit Word zu erzeugen (ohne dass Word zu sehen ist). Dazu findest Du hier im Forum Beispiele.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei

Beitrag von Tom »

Äh.

Vergiss das mit den Ersetzungstabellen. Es gibt keine Möglichkeit, einem 8-Bit-ASCII-Text, der keine zusätzlichen Informationen enthalten soll, seine persönliche Collationtable "mitzugeben".

Von der Möglichkeit abgesehen, den Text schon mit Word zu erzeugen, was vermutlich die eleganteste ist, gäbe es außerdem diejenige, einen RTF-Text zu erzeugen. Das geht auch ohne entsprechendes Control; RTF ist nicht sehr kompliziert. Man kann sich - beispielsweise mit Wordpad - eine minimale Vorlage gestalten, aus der man den Header und Epilog entnimmt, und dann einfach den Zwischenraum mit dem eigenen Text befüllen. Auch hier müssen Sonderzeichen und Umlaute entsprechend berücksichtigt werden, aber das ist vergleichsweise einfach (Text mit Sonderzeichen erzeugen und einfach nach den Ersetzungen suchen). Zeilen enden mit "\par", wie auch das gesamte Dokument. Verknüpft man Word dann noch als Standardprogramm mit dem Suffix ".RTF", startet es auch. Was natürlich keine Lösung für eine Anwendung ist, die bei zig Kunden laufen soll.
Herzlich,
Tom
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: Ausgabe als DOC-Datei

Beitrag von peternmb »

Tom hat geschrieben:Äh.
Vergiss das mit den Ersetzungstabellen. Es gibt keine Möglichkeit, einem 8-Bit-ASCII-Text, der keine zusätzlichen Informationen enthalten soll, seine persönliche Collationtable "mitzugeben".
Gut, ich habe nach 1Stunde Suche jetzt schon gedacht ich wäre zu blöd sowas zu finden :wink:

Ich lasse es einfach wie es ist. Das ist eigentlich überhaupt kein Problem, da diese Ausgabe nur selten genutzt wird und nur noch aus Kompatibilitätsgründen im Programm ist.

Vielen Dank für die Erklärung.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei [erledigt]

Beitrag von Koverhage »

Ich hätte erst versucht das mit den ConvTo Funktionen von Xbase++ zu lösen.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Ausgabe als DOC-Datei [erledigt]

Beitrag von Tom »

Hallo, Klaus.
Ich hätte erst versucht das mit den ConvTo Funktionen von Xbase++ zu lösen.
Das bliebe wirkungslos. Sobald der 7-Bit-Bereich überschritten wird, bietet Word die Konvertierung an. Das geschieht sogar, wenn man einen entsprechenden Text direkt aus Word so gespeichert und umbenannt hat. Dabei spielt keine Rolle, ob irgendwas mit ANSI- oder OEM-Konvertierung getan wird. Und Word "rät" auch noch falsch. Beim gespeicherten Text "Hallo, Hülefüle" bietet es die Konvertierung aus dem chinesischen Zeichensatz an. Einfach mal ausprobieren. :wink:
Herzlich,
Tom
Antworten