Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  nach einem Textstring suchen und ersetzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  nach einem Textstring suchen und ersetzen (6589 mal gelesen)
madhya
Mitglied
 Administrator


Sehen Sie sich das Profil von madhya an!   Senden Sie eine Private Message an madhya  Schreiben Sie einen Gästebucheintrag für madhya

Beiträge: 61
Registriert: 19.02.2001

Windows 10 64-bit
Catia V5-6 R2019
Robcad / PSimulate
AutoCAD

erstellt am: 31. Jan. 2008 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Catia-Gemeinde!

Ich möchte in Drawings nach einem Textstring suchen und diesen durch einen neuen ersetzen. Suchen ist zwar kein Problem, aber ich habe nicht die notwendigen Befehle für das Editieren.

Language="VBSCRIPT"

Sub CATMain()

Dim drawingDocument1 As Document
Set drawingDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = drawingDocument1.Selection


selection1.Search "CATDrwSearch.DrwText.TextString=ALTSTRING,all"

Dim ModText as DrawingText
Dim NewText as DrawingText
Dim n as Integer

For n = 1 to selection1.count
Set ModText = Selection1.Item(k).Value

.
.
.
.

Next

End Sub

Kommt jemand auf eine Idee?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 31. Jan. 2008 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Servus
Versuch es mal mit:
Code:
Replace(ModText, "ALTSTRING", "Test")

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

madhya
Mitglied
 Administrator


Sehen Sie sich das Profil von madhya an!   Senden Sie eine Private Message an madhya  Schreiben Sie einen Gästebucheintrag für madhya

Beiträge: 61
Registriert: 19.02.2001

Windows 10 64-bit
Catia V5-6 R2019
Robcad / PSimulate
AutoCAD

erstellt am: 31. Jan. 2008 15:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd!

Danke für deine schnelle Antwort.
Ich nehme an, replace ist eine unterroutine.
Wenn ich aber deine Befehlszeile einbaue, kommt es zur Fehlermeldung aufgrund der Klammern.

gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 31. Jan. 2008 16:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Servus madhya
Schau mal hier in die Befehls-Referenz von VBScript.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lusilnie
Mitglied



Sehen Sie sich das Profil von Lusilnie an!   Senden Sie eine Private Message an Lusilnie  Schreiben Sie einen Gästebucheintrag für Lusilnie

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 31. Jan. 2008 19:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo madhya,

Du solltest die Zeile so aufbauen:

Code:
ModText = Replace(ModText, "ALTSTRING", "Test")



mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

madhya
Mitglied
 Administrator


Sehen Sie sich das Profil von madhya an!   Senden Sie eine Private Message an madhya  Schreiben Sie einen Gästebucheintrag für madhya

Beiträge: 61
Registriert: 19.02.2001

Windows 10 64-bit
Catia V5-6 R2019
Robcad / PSimulate
AutoCAD

erstellt am: 31. Jan. 2008 20:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd, Hallo Luslnie

Dein Hinweis auf replace war richtig. Danke vorerst einmal dafür.
Mein nächstes Problem ist es dem TextString eine Variable zuzuweisen.
Es wird einfach nicht akzeptiert. Ich möchte nämlich in einem Drawing nach mehreren unterschiedlichen Textstrings suchen und diese durch neue ersetzen.
Vielleicht ist der Suchbefehl CATDrwSearch... der falsche Ansatz dafür, oder ich
verwende die falsche Schreibweise

stringalt_1="Frontscheibe"
stringalt_2="Radhaus"
.
.
selection1.Search "CATDrwSearch.DrwText.TextString=stringalt_1,all"
For k = 1 to selection1.count
Set ModText = Selection1.Item(k).Value
stringneu="Heckscheibe"
modtext.text= Replace(stringalt, stringalt, stringneu)
Next


Habt Ihr vielleicht einen Ansatz dafür?


mfg
madhya

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lusilnie
Mitglied



Sehen Sie sich das Profil von Lusilnie an!   Senden Sie eine Private Message an Lusilnie  Schreiben Sie einen Gästebucheintrag für Lusilnie

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 31. Jan. 2008 23:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo ,

der Ansatz ist doch eigentlich logisch (  ): Du musst den Such-String zusammensetzen, etwa so:

Code:
selection1.Search "CATDrwSearch.DrwText.TextString=" & stringalt_1 & ",all"



[Edit]
PS: Logischer wäre für mich auch die "replace"-Zeile so:
Code:
modtext.text= Replace(modtext.text, stringalt, stringneu)

{/Edit]

mfg,
Lusilnie


------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

[Diese Nachricht wurde von Lusilnie am 31. Jan. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

madhya
Mitglied
 Administrator


Sehen Sie sich das Profil von madhya an!   Senden Sie eine Private Message an madhya  Schreiben Sie einen Gästebucheintrag für madhya

Beiträge: 61
Registriert: 19.02.2001

Windows 10 64-bit
Catia V5-6 R2019
Robcad / PSimulate
AutoCAD

erstellt am: 01. Feb. 2008 10:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd, Hallo Luslnie!

Tausend Dank an euch beiden. Nun habe ich ungefähr das was ich brauche. Nur habe ich Probleme wenn im Suchstring Leerzeichen bzw "@" vorkommen, dann nämlich kommt es zum Interrupt. Ich stelle den aktuellen Stand meines Makros rein.

Sub CATMain()

Dim drawingDocument1 As Document
Set drawingDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = drawingDocument1.Selection

Dim ModText as DrawingText
Dim K as Integer
dim i as integer
dim stringalt(13) as string
dim stringneu(13) as string
dim suchstring as string

stringalt(01)="beispiel.mustermann@musterstadt.de"
stringneu(01)="beispiel.musterfrau@musterstadt.de"
stringalt(02)="Hr. Mustermann"
stringneu(02)="Hr. Musterfrau"
stringalt(03)="+49 821 899 0001"
stringneu(03)="+49 821 897 0002"

for i=1 to 03
suchstring=stringalt(i)
msgbox suchstring &" ---> "& stringneu(i)
selection1.Search "CATDrwSearch.DrwText.TextString="&suchstring&",all"

For k = 1 to selection1.count
Set ModText = Selection1.Item(k).Value
modtext.text= Replace(modtext.text,suchstring, stringneu(i))
Next

selection1.clear
next

End Sub

mfg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lusilnie
Mitglied



Sehen Sie sich das Profil von Lusilnie an!   Senden Sie eine Private Message an Lusilnie  Schreiben Sie einen Gästebucheintrag für Lusilnie

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 03. Feb. 2008 20:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo madhya,

mit der CATIA-internen Kennzeichnung von Sonderzeichen in Namen sollte es funktionieren:

Code:
selection1.Search "CATDrwSearch.DrwText.TextString='"&suchstring&"',all"


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

reiffm
Mitglied
Angestellter


Sehen Sie sich das Profil von reiffm an!   Senden Sie eine Private Message an reiffm  Schreiben Sie einen Gästebucheintrag für reiffm

Beiträge: 82
Registriert: 18.08.2000

erstellt am: 04. Jun. 2008 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo zusammen,

kann mir jemand sagen wie ich die Zeile

selection1.Search "CATDrwSearch.DrwText.TextString='"&suchstring&"',all"

umschreiben muß, wenn ich in einem CATPart Features umbenennen will.

Mein Versuch mit

suchstring="Name=*"& stringalt&"*" &",all"
selection1.Search suchstring

scheitert leider bei einem Doppelpunkt im "Stringalt".

------------------
Frohes Schaffen
Michael Reiff

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lusilnie
Mitglied



Sehen Sie sich das Profil von Lusilnie an!   Senden Sie eine Private Message an Lusilnie  Schreiben Sie einen Gästebucheintrag für Lusilnie

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 04. Jun. 2008 22:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo reiffm,

probier es doch genau so, wie ich es im Beitrag vor Dir beschrieben habe:

Code:
suchstring="Name='*" & stringalt & "*',all"
Oder auch:
Code:
suchstring="'Name=*" & stringalt & "*',all"
Dann sollte es funktionieren. ODER ? 


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Norman Schulz
Mitglied
Konstrukteur Catia V4/V5


Sehen Sie sich das Profil von Norman Schulz an!   Senden Sie eine Private Message an Norman Schulz  Schreiben Sie einen Gästebucheintrag für Norman Schulz

Beiträge: 300
Registriert: 18.03.2002

V5R19SP9 // V5R20SP7 //V5R24SP5
Lizenz MD2
Lenovo ThinkPad W540
WIN 7 64bit 16GB
Intel i7-4800MQ 2.7GHz

erstellt am: 19. Apr. 2010 10:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für madhya 10 Unities + Antwort hilfreich

Hallo!
Ist es moeglich, das Makro von madhya auch ueber eine Reihe von Dokumenten (Bsp. X Zeichnungen in einem Ordner) laufen zu lassen?
Wie muesste man das Makro dafuer umschreiben?

Gruss Norman

------------------
WTL Engineering GmbH          
n.schulz@wtl-group.de
http://www.wtl-group.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz