Featurewünsche

Forum für den Betatest von BasicMaker 2021 für Windows
Antworten
Benutzeravatar
Get
Beiträge: 188
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Featurewünsche

Beitrag von Get » 04.05.2020 10:14:39

Vor einiger Zeit hatte ich mal den Wunsch geäußert, bei BasicMaker mit "tm.ActiveDocument.Selection.Copy" zwischen "formatiert" und "unformatiert" wählen zu können. Ist der Wunsch noch auf der Agenda?
Ein zusätzlicher Wunsch: Ich würde gern mit BasicMaker auf "suchen und ersetzen" zugreifen können. Geht das vielleicht jetzt schon? Wennn ja: wie?

Herzlichen Dank für eine Antwort.
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 889
Registriert: 11.03.2020 17:30:08

Re: Featurewünsche

Beitrag von SuperTech » 05.05.2020 00:36:22

Für Ihre erste Ausgabe ist die Arbeit noch im Gange, aber wir können dafür kein festes Datum oder eine feste Version versprechen.

Für zusätzlichen Wunsch: Ja, es ist möglich. Bitte überprüfen Sie diese Codezeile :

tm.ActiveDocument.Selection.Range.Find.Execute FindText:= "FindMe", Replace:=tmReplaceAll, ReplaceWith:= "ReplaceWith"

wobei tm das Objekt des TextMaker-Dokuments ist

"FindMe" ist die Teilzeichenkette, die Sie zum Ersetzen finden möchten

"ReplaceWith" ist die Teilzeichenfolge, mit der Sie die gefundene Textzeichenfolge ersetzen möchten.

Fröhliche Kodierung :)

Benutzeravatar
Get
Beiträge: 188
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Featurewünsche

Beitrag von Get » 05.05.2020 14:05:14

Danke für die Antworten, den Wunsch "Fröhliche Kodierung :) " und den Hinweis auf ".Selection.Range.Find.Execute". Ich war damit aber nicht erfolgreich (mit Code unten und angehängtem kurzem Dolument).
Ich habe im Skript versuchsweise auch die Doppelpunkte in den Zuweisungen (FindText:=) durch Leerzeichen ersetzt und auch - statt die ganze Datei zu selektieren - einzelne Absätze, aber alles erfolglos. Muss mann die Selection irgendwie zurückschreiben? Gibt es irgendwo eine detaillierte Beschreibung von ".Selection.Range.Find.Execute"?

Code: Alles auswählen

Sub ersetzung
Dim tm as Object
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Application.WindowState = 3

tm.ActiveDocument.Select
tm.ActiveDocument.Selection.Range.Find.Execute FindText:= ">>Ersetzungen<<", Replace:=tmReplaceAll, ReplaceWith:= "Änderungen"
Set tm = Nothing
End Sub
Hintergrund meiner Fragerei: Ich muss öfter in sehr langen Dokumenten sehr viele Ersetzungen durchführen (mehr als 50!). Ich würde die Liste der Suchbegriffe und Ersetzungen gern an ein Skript übergeben, das dann alles auf einen Rutsch ausführt, während ich gemütlich eine Tasse Kaffe trinke. Das müheselige Abarbeiten im Einzelnen nervt.
Dateianhänge
ersetzungen.docx
(12.49 KiB) 26-mal heruntergeladen
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 889
Registriert: 11.03.2020 17:30:08

Re: Featurewünsche

Beitrag von SuperTech » 05.05.2020 18:28:03

Bitte prüfen Sie das beigefügte Dokument und den Code, um es zu testen. Wir haben immer noch keine vollständige Dokumentierung des Teils dieses Codes.

Aber ich denke, dies wird Ihnen bei der Automatisierung Ihrer Arbeit helfen. Ich habe mein Bestes versucht, in dieser Frage zu helfen :)

Code: Alles auswählen

Sub Ersatz_finden
	Dim tm as Object
	Set tm = CreateObject("TextMaker.Application")
	tm.Application.Visible = True
	tm.Application.WindowState = 3
	tm.ActiveDocument.Selection.Range.Find.Execute FindText:= "TextMaker", Replace:= tmReplaceAll, ReplaceWith:= "PlanMaker"
	MsgBox "Alle Ersetzungen erfolgreich abgeschlossen"
	Set tm = Nothing
End Sub
Dateianhänge
Test Document.docx
(14.75 KiB) 31-mal heruntergeladen

FFF
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1407
Registriert: 11.06.2013 22:30:18

Re: Featurewünsche

Beitrag von FFF » 05.05.2020 19:45:02

Die BM Routine funktioniert bei mir...

Der Versuch, es per Interop aus meiner .Net Anwendung zu verwenden, endet seltsam: Ist Ihr Beispielsdokument aktiv, funktioniert:
tm:ActiveDocument:Selection:Range:Find:Execute("Textmaker",0,0,0,tmFindWrap.tmFindContinue, tmFindReplace.tmReplaceAll, "Replaced")


Ist "mein" Dokument geöffnet, das mit dem Wort "Ausgaben" beginnt, scheitert leider tm:ActiveDocument:Selection:Range:Find:Execute("Ausgaben",0,0,0,tmFindWrap.tmFindContinue, tmFindReplace.tmReplaceAll, "Replaced")

Mache ich aber in TM eine neue tmdx-Datei, schreibe "Ausgaben" rein und speichere, funktioniert der obige Aufruf :mrgreen:
Nehme ich Ihr Dokument, schreibe "Ausgaben" an beliebiger Stelle rein, funktioniert der Aufruf auch - mache ich aber mit STRG-Z das Ersetzen rückgängig, funktioniert es aber kein zweites Mal.
Mache ich auch die Eingabe rückgängig, schreibe erneut von Hand "Ausgaben", funktioniert es wieder :-o

Es scheint keinen Unterschied zu machen, ob ich ein doc, docx, oder tmdx Dokument verwende.

Somewhat strange...
Mit freundlichem Gruß
Karl
SM 2018 rev. 976/0313/64, klassisches Menu @ W8.1/64 /Deutsch/Deutsch // emC 7
SM 2021 Nightly rev. 1021/1011/64, klassisches Menu
16GB Ram; Core i5-3450 mit integriertem Intel HDGraphics 4000, Treiber 10.18.10.4276; Samsung SSD 840pro
2560x1440 Monitor 100% Darstellungsgröße /// LaserJet 1200 per USB via Fritzbox 6591.

Benutzeravatar
Get
Beiträge: 188
Registriert: 08.12.2014 13:39:39
Kontaktdaten:

Re: Featurewünsche

Beitrag von Get » 06.05.2020 18:04:48

SuperTech hat geschrieben:
05.05.2020 18:28:03
Bitte prüfen Sie das beigefügte Dokument und den Code, um es zu testen. Wir haben immer noch keine vollständige Dokumentierung des Teils dieses Codes.
Danke, es funktioniert =D>. Der Fehler in meinem Versuch war wohl "tm.ActiveDocument.Select" vor dem Aufruf einzufügen.
Allerdings habe ich etwas seltsames registriert:
An "FindText" und "ReplaceWith" kann ich string-Variable übergeben, aber keine Array-Elemente:

Code: Alles auswählen

For i = 1 To 2
 stext = suchtext(i)
 etext = ersatztext(i)
 tm.ActiveDocument.Selection.Range.Find.Execute FindText:= stext, Replace:=tmReplaceAll, ReplaceWith:= etext
Next i
funktioniert, aber

Code: Alles auswählen

For i = 1 To 2
 tm.ActiveDocument.Selection.Range.Find.Execute FindText:= suchtext(i), Replace:=tmReplaceAll, ReplaceWith:= ersatztext(i)
Next i
funktioniert nicht. Das ist zwar kein größeres Problem, aber es interessiert mich: Woran kann das liegen?
Gerhard Etzel
Autor (gerhard-etzel-buch.de). Meine Kriminalromane wurden mit Textmaker geschrieben!
Windows 10, SMO 2018 Prof.

FFF
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 1407
Registriert: 11.06.2013 22:30:18

Re: Featurewünsche

Beitrag von FFF » 06.05.2020 18:57:15

Get hat geschrieben:
06.05.2020 18:04:48

Code: Alles auswählen

For i = 1 To 2
 tm.ActiveDocument.Selection.Range.Find.Execute FindText:= suchtext(i), Replace:=tmReplaceAll, ReplaceWith:= ersatztext(i)
Next i
funktioniert nicht. Das ist zwar kein größeres Problem, aber es interessiert mich: Woran kann das liegen?
Ich würde vermuten, die "Execute" Maschine, die die Parameter auswertet, kann/erlaubt das nicht.
Was passiert, wenn Du davor noch var st = suchtext(i) etc. einbaust? Braucht natürlich dann noch eine Schleife mehr, aber wenn's hülfe... 8)
Mit freundlichem Gruß
Karl
SM 2018 rev. 976/0313/64, klassisches Menu @ W8.1/64 /Deutsch/Deutsch // emC 7
SM 2021 Nightly rev. 1021/1011/64, klassisches Menu
16GB Ram; Core i5-3450 mit integriertem Intel HDGraphics 4000, Treiber 10.18.10.4276; Samsung SSD 840pro
2560x1440 Monitor 100% Darstellungsgröße /// LaserJet 1200 per USB via Fritzbox 6591.

jassonmc
Beiträge: 53
Registriert: 19.08.2015 13:14:43

Re: Featurewünsche

Beitrag von jassonmc » 22.05.2020 16:25:42

Gibt es dieses Feature zum "Suchen und Ersetzen" auch für den pm?
Wenn ja, wie würde der Command lauten?

Danke und Gruss

SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 889
Registriert: 11.03.2020 17:30:08

Re: Featurewünsche

Beitrag von SuperTech » 22.05.2020 21:17:23

Es sind einfache Kurzwahltasten <Ctrl + H>, die das Dialogfeld Ersetzen öffnen.

oder

Home | Der Befehl Ribbon ersetzen öffnet das gleiche Dialogfeld Ersetzen für Sie.

jassonmc
Beiträge: 53
Registriert: 19.08.2015 13:14:43

Re: Featurewünsche

Beitrag von jassonmc » 22.05.2020 22:18:11

Hallo SuperTech

Danke für die Antwort, ich meinte aber eigentlich ob es ein Kommando hierzu im BasicMaker gibt :)
So wie ich das bis jetzt gesehen habe, kann BasicMaker kein "Suchen und Ersetzen"...

SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 889
Registriert: 11.03.2020 17:30:08

Re: Featurewünsche

Beitrag von SuperTech » 24.05.2020 22:16:38

Ich habe die Befehle im Detail überprüft, aber diesen haben wir derzeit nicht. Ich habe die Details an unser Entwicklungsteam weitergeleitet.

Danke

Antworten

Zurück zu „BETA BasicMaker 2021 für Windows“