COMate/PureDispHelper

Für allgemeine Fragen zur Programmierung mit PureBasic.
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

COMate/PureDispHelper

Beitrag von Andi »

Hallo zusammen, für PureDispHelper-Lib gibt es ein Beispielprogramm word_find_replace. Dort sind folgende Zeilen enthalten:

Code: Alles auswählen

Define.l wdReplaceAll = 2
.
.
.
 dhCallMethod    (oWord, "Selection.Find.Execute(%m,%m,%m,%m,%m,%m,%m,%m,%m,%m,%u)",wdReplaceAll)
Ich bin nun dabei, meine vielen kleinen Word-Tools von PureDispHelper auf COMate umzustellen. Wie kann ich denn in COMate eine Variable %m (also vom Typ "missing") hinkriegen?

P.S.
Kiffi, ich habe jetzt zuerst im deutschen Forum gepostet!!
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: COMate/PureDispHelper

Beitrag von Kiffi »

Andi hat geschrieben:Kiffi, ich habe jetzt zuerst im deutschen Forum gepostet!!
:allright: dann sollst Du auch nicht lange auf Deine Antwort warten ;-)

#Empty oder #Optional oder #Opt sind die Zauberwörter.

Grüße ... Kiffi
a²+b²=mc²
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

Beitrag von Andi »

@Kiffi: Danke für die Zauberwörter!
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Little John

Beitrag von Little John »

2Andi:
Vielleicht magst Du die COMate-Version des Find/Replace-Programms hier posten? :) Das interessiert mich.
Ich kann mir auch vorstellen dass srod nicht abgeneigt wäre, es COMate als "offizielles" Beispielprogram hinzuzufügen.

Gruß, Little John
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Little John hat geschrieben:Das interessiert mich.
Hase Cäsar hat geschrieben:Biddeschööööön:

Code: Alles auswählen

IncludePath #PB_Compiler_Home + "comate"
XIncludeFile "comate.pbi"

Procedure WordSearchReplace(InFile.s, OutFile.s, Search.s, Replace.s)
  
  Protected oWord.COMateObject
  Protected ExecutionString.s
  
  #wdReplaceAll = 2
  
  oWord = COMate_CreateObject("Word.Application")

  oWord\Invoke("Documents\Open('" + InFile + "')")
  
  oWord\Invoke("Selection\WholeStory")
  
  oWord\Invoke("Selection\Find\ClearFormatting")
  oWord\SetProperty("Selection\Find\Text = '" + Search + "'")
  
  oWord\Invoke("Selection\Find\Replacement\ClearFormatting")
  oWord\SetProperty("Selection\Find\Replacement\Text = '" + Replace + "'")

  ExecutionString = "%m,%m,%m,%m,%m,%m,%m,%m,%m,%m,%u"
  ExecutionString = ReplaceString(ExecutionString, "%m", "#Optional")
  ExecutionString = ReplaceString(ExecutionString, "%u", Str(#wdReplaceAll))
  
  oWord\Invoke("Selection\Find\Execute(" + ExecutionString + ")")
  
  oWord\Invoke("ActiveDocument\SaveAs('" + OutFile + "')")
  
  oWord\Invoke("Quit(0)")
  
  oWord\Release() 
  
EndProcedure

InFile.s = "C:\Programme\Microsoft.NET\SDK\v2.0\Tool Developers Guide\1031\Readme.doc"
OutFile.s = "C:\Programme\Microsoft.NET\SDK\v2.0\Tool Developers Guide\1031\Readme2.doc"

Search.s = "e"
Replace.s = "x"

WordSearchReplace(InFile, OutFile, Search, Replace)
(Errorhandler und so'n Zeug habe ich jetzt erstmal weggelassen)

Grüße ... Kiffi
a²+b²=mc²
Little John

Beitrag von Little John »

Kiffi hat geschrieben:
Hase Cäsar hat geschrieben:Biddeschööööön:
Schon als Kind mochte ich den Hasen Cäsar gerne. ;-) Vielen vielen Dank, Kiffi! :allright:

Das ist sehr nützlich, denn man kann so mit PureBasic z.B. Serienbriefe in Form von (bei Bedarf aufwendig formatierten) Word-Dokumenten schreiben.

Gruß, Little John
Little John

Beitrag von Little John »

Wenn ich nichts ersetzen, sondern nur etwas suchen will:

Wie kann ich festlegen

Code: Alles auswählen

[ ] Suchen als ganzes Wort (ja/nein)
und wie teilt COMate mir mit, ob der Suchbegriff im betr. Dokument gefunden wurde?

Gruß, Little John
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3875
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: COMate/PureDispHelper

Beitrag von bobobo »

Code: Alles auswählen

oWord\Invoke("Selection\WholeStory")
kann man sich auch sparen in Kiffis Code
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: COMate/PureDispHelper

Beitrag von Kiffi »

Zombiebuddler, Du!
a²+b²=mc²
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3875
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: COMate/PureDispHelper

Beitrag von bobobo »

naja .. guter Code wird nicht schlecht :D
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten