Hallo,
den Code von Kiffi:
http://forums.purebasic.com/english/vie ... f78ae5e2af
habe ich heruntergeladen.
Er speichert eine Worddatei als "TXT" ab.
Nun kann man im Worddialog ja angeben: Zeilenumbrüche einfügen
Wie kann ich diese Option Commate übergeben?
Wie kann ich den Wordtext markieren und in die Zwischenablage kopieren oder gleich in das Editorgadget?
Commateplus - Worddatei als Txt anspeichern
Commateplus - Worddatei als Txt anspeichern
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Commateplus - Worddatei als Txt anspeichern
Hallo,
wenn man sich das Makro von Word anschaut, sieht man die Zusätze:
Ich hoffe, das ihr mir das weiterhelfen könnt.
Hier ist mal der Code, es ist der Code von Kiffi:
wenn man sich das Makro von Word anschaut, sieht man die Zusätze:
Dieser Zusatz müßte hinzugefügt werden:ActiveDocument.SaveAs2 FileName:="testdoc.txt", FileFormat:=wdFormatText, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, Encoding:=1252, InsertLineBreaks:=True, AllowSubstitutions:=False, _
LineEnding:=wdCRLF, CompatibilityMode:=0
Nun weiß ich absolut nicht wie. Habe schon vieles probiert, aber kein Erfolg.InsertLineBreaks:=True
Ich hoffe, das ihr mir das weiterhelfen könnt.
Hier ist mal der Code, es ist der Code von Kiffi:
Code: Alles auswählen
;/////////////////////////////////////////////////////////////////////////////////
;***COMate*** COM automation through iDispatch.
;*===========
;*
;*Convert a Word document to HTML by Kiffi. http://www.purebasic.fr/english/viewtopic.php?t=35719
;*
;*Modified to convert to text format by netmaestro in answer to a forum question
;/////////////////////////////////////////////////////////////////////////////////
IncludePath "H:\puresource\comateplus\"
XIncludeFile "COMatePLUS.pbi"
#wdFormatTEXT = 2
#wdFormatHTML = 8
#wdFormatFilteredHTML = 10
Procedure GetFormatTEXT(WordApplication.COMateObject)
; inspired by Joost Schwider
; http://vb-tec.de/wordhtml.htm
Protected FileConverter.COMateObject
Protected FileConverters.COMateEnumObject
Protected SaveFormat
Debug WordApplication\GetIntegerProperty("Version")
If WordApplication\GetIntegerProperty("Version") > 8
SaveFormat = #wdFormatTEXT
Else
FileConverters = WordApplication\CreateEnumeration("FileConverters")
If FileConverters
FileConverter = FileConverters\GetNextObject()
While FileConverter
If FileConverter\GetStringProperty("ClassName") = "TEXT"
SaveFormat = FileConverter\GetIntegerProperty("SaveFormat")
FileConverter\Release()
Break
EndIf
FileConverter\Release()
FileConverter = FileConverters\GetNextObject()
Wend
FileConverters\Release()
EndIf
EndIf
ProcedureReturn SaveFormat
EndProcedure
Procedure ShowErrorIfAny()
If COMate_GetLastErrorCode()
Debug COMate_GetLastErrorDescription()
EndIf
EndProcedure
Procedure Doc2Text(Infile.s, OutFile.s)
Protected ReturnValue
Protected WordApplication.COMateObject
ReturnValue = #False
If FileSize(Infile) = -1
Debug "file not found"
Else
WordApplication = COMate_CreateObject("Word.Application")
If WordApplication
If WordApplication\Invoke("Documents\Open('" + Infile + "')") = #S_OK
;WordApplication\Invoke("Selection.WholeStory")
WordApplication\Invoke("ActiveDocument\Selection.Copy")
If WordApplication\Invoke("ActiveDocument\SaveAs('" + OutFile + "', " + Str(GetFormatTEXT(WordApplication)) + " As Long)") = #S_OK
ReturnValue = #True
Else
Debug "!ActiveDocument\SaveAs"
Debug ShowErrorIfAny()
EndIf
WordApplication\Invoke("Quit(0)")
Else
Debug "!Documents\Open"
EndIf
WordApplication\Release()
Else
Debug "!WordApplication"
Debug ShowErrorIfAny()
EndIf
EndIf
ProcedureReturn ReturnValue
EndProcedure
;Test.
Define Infile.s = "C:\temp\Testdoc.doc"
Define OutFile.s = "C:\temp\fromTest1Doc.txt"
If Doc2Text(Infile, OutFile) = #True
RunProgram(OutFile)
EndIf
Text.s = GetClipboardText()
Debug Text
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Commateplus - Worddatei als Txt anspeichern
was meinst Du mit "Zeilenumbrüche einfügen"? Bei mir werden Zeilenumbrüche so wie im DOC angegeben exportiert.
Grüße ... Kiffi
Grüße ... Kiffi
a²+b²=mc²
Re: Commateplus - Worddatei als Txt anspeichern
Hallo Kiffi,
wenn man in Word eine Datei als "*.txt" abspeichert, erfolgt nach Abfrage des Dateinamens ein weiterer Dialog.
Hier kann man die Codierung, z.B. Windows oder MS-DOS, auswählen.
Da drunter befindet sind die Option "Zeilenumbrüche einfügen". Sie entspricht dem VBA-Parameter "InsertLineBreaks:=True".
Was macht diese Option?
Sie wandelt die weichen Zeilenumbrüche von Word in harte Zeilenumbrüche um.
In deinem Code oben wird die Textdatei nur die harten Zeilenumbrüche berücksichtigt.
Wenn man eine Textdatei ohne diese Option in ein Editorgadget lädt, fällt die Textformatierung weg und man hat
sehr lange Textzeilen, die über den rechten Rand hinaus gehen.
Mit der Option wird der Text genauso mit den Zeilenumbrüche wie in Word angezeigt.
Ich hoffe, du kannst mit dieser Erklärung etwas anfangen?
Wichtig ist, ob man den Parameter überhaupt übergeben kann?
....und danke schon mal im voraus.
wenn man in Word eine Datei als "*.txt" abspeichert, erfolgt nach Abfrage des Dateinamens ein weiterer Dialog.
Hier kann man die Codierung, z.B. Windows oder MS-DOS, auswählen.
Da drunter befindet sind die Option "Zeilenumbrüche einfügen". Sie entspricht dem VBA-Parameter "InsertLineBreaks:=True".
Was macht diese Option?
Sie wandelt die weichen Zeilenumbrüche von Word in harte Zeilenumbrüche um.
In deinem Code oben wird die Textdatei nur die harten Zeilenumbrüche berücksichtigt.
Wenn man eine Textdatei ohne diese Option in ein Editorgadget lädt, fällt die Textformatierung weg und man hat
sehr lange Textzeilen, die über den rechten Rand hinaus gehen.
Mit der Option wird der Text genauso mit den Zeilenumbrüche wie in Word angezeigt.
Ich hoffe, du kannst mit dieser Erklärung etwas anfangen?
Wichtig ist, ob man den Parameter überhaupt übergeben kann?
....und danke schon mal im voraus.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: Commateplus - Worddatei als Txt anspeichern
ah, ok, jetzt habe ich's verstanden 
Grüße ... Kiffi
Code: Alles auswählen
[...]
If WordApplication\Invoke("ActiveDocument\SaveAs('" + OutFile + "', " + Str(GetFormatTEXT(WordApplication)) + " As Long, #Opt, #Opt, #Opt, #Opt, #Opt, #Opt, #Opt, #Opt, #Opt, #Opt , #True)") = #S_OK
[...]a²+b²=mc²
Re: Commateplus - Worddatei als Txt anspeichern
Einfach super Kiffi.
Jetzt weiß man endlich, wie man die Parameter übergibt.
Danke.
Jetzt weiß man endlich, wie man die Parameter übergibt.
Danke.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9