Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Buchstabe von Stringparameter entfernen

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:  Buchstabe von Stringparameter entfernen (3255 mal gelesen)
moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 02. Dez. 2011 15:26    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 zusammen,

ich möchte gern von einem Stringparameter den Buchstaben entfernen so das nur der Zahlenwert übrigbleibt.

Änlnlich wie "ToString(Param/1mm)"

Möchte gern den Nenndurchmesser eines Gewindes weiterverwenden

z.B. "M10" soll "10"
      "M8 soll "8" rauskommen

Gruß und schönes WE
Uwe

Gruß Uwe

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 02. Dez. 2011 15:35    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 moppesle 10 Unities + Antwort hilfreich

Ist glaube ich etwas kniffelig, daher auch nicht komplette Lösung:

Du kannst die einzelnen Zeichen in einer Schleife abarbeiten.

also

for iChar = 1 to len(sMeinString)

Next iChar

dann kannste die einzelnen zeichen rausschneiden mit right(left(sMeinString, ichar),1)

und diese kannst Du dann prüfen mit

isNumeric(right(left(sMeinString, ichar),1))

nun merkst Du Dir von wo bis wo es numerisch ist und schneidest den String dann mit Mid() raus, diesen wandelst Du dann mit CLng() zum Beispiel in ein Long um.

Gibt sicher auch eine einfacherere Methode um die einzelnen Chars durchzugenen, mir ist auf die Schnelle aber nur das eingefallen.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

Stammtisch in Wolfsburg
http://ww3.cad.de/foren/ubb/Forum491/HTML/000179.shtml

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 02. Dez. 2011 15:43    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 moppesle 10 Unities + Antwort hilfreich

Guten Tag,

also falls es sich bei dem Parameter schon um einen String handelt (so habe ich es verstanden), kann man mit folgender Formel ein enfternen des "M" erreichen, sowie gleichzeitig in einen Real umwandeln:

Eingabestring:
String.2="M10,5"

String so ändern, das M entfernt wird (ergibt "10,5")
Also Starte beim 2. Buchstaben und nehme noch so viele Buchstaben wie die Anzahl aller MINUS 1 (der erste ist ja weg)
String.2->Extract(1,String.2 ->Length()-1)

String zu Real umwandeln
String.2 ->Extract(1,String.2 ->Length()-1 ) ->ToReal()


Bei Kommawerten aufpassen, da die ToReal-Function dort sehr piselig ist. Also selbst Testen ob bei deinen Einstellungen ein Komma "," oder ein Punkt "." als Dezimalzeichen im String verlangt wird!

mfg


Edit: Da habe ich wohl zu lange zum Tippen gebraucht...  

[Diese Nachricht wurde von gladly am 02. Dez. 2011 editiert.]

[Diese Nachricht wurde von gladly am 02. Dez. 2011 editiert.]

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 02. Dez. 2011 15:46    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 Henry,

habe vergessen zu schreiben, das ich kein Makro schreibe, sonderen in einem Parameter eine Berechnung durchführen möchte.

Also "Gewindetiefe" = "NenndurchmesserGewinde"*1,5mm

Nur stört mich das "M" bei meinem Parameter Gewinde.
Möchte aber auch nicht unbedingt einen zusätzlichen Parameter anlegen.

Gruß Uwe

Hallo gladly
 

Zitat:
Da habe ich wohl zu lange zum Tippen gebraucht...

Ich kann dich beruhigen du bist nicht der einzige  

Werd deine Variante mal testen. Sieht gut aus.

[Diese Nachricht wurde von moppesle am 02. Dez. 2011 editiert.]

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 02. Dez. 2011 15:51    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 moppesle 10 Unities + Antwort hilfreich

Mein Vorschlag ist kein Marko. Ein ganz normale Formel, wie Sie sie wünschen.
Einfach den String.2 (war nur mein Teststring) durch den String-Parameter NenndurchmesserGewinde ersetzen!

Also "Gewindetiefe" = NenndurchmesserGewinde ->Extract(1,NenndurchmesserGewinde ->Length()-1 ) ->ToReal() *1.5mm

Geweindetiefe muss in diesem Fall halt ein Parameter vom Typ Length/Länge sein!

Um ein ewentuelles 0-Ergebnis wegen falschem Dezimalzeichen zu verhindern könnte man die Formel noch folgend umschreiben (NICHT GETESTET!)

Also "Gewindetiefe" = ReplaceSubText(NenndurchmesserGewinde, ".", ",") ->Extract(1,NenndurchmesserGewinde ->Length()-1 ) ->ToReal() *1.5mm

Also von M10.5 zu M10,5 damit die ToReal-Function geht. Das *1.5mm wird ja eh direkt angemerkt, wenn er die Schreibweise nicht will.


mfg

Edit: Nun häuft sich diese Verzögerung... Also sorry für die doppelte Erklärung nun  

[Diese Nachricht wurde von gladly am 02. Dez. 2011 editiert.]

[Diese Nachricht wurde von gladly am 02. Dez. 2011 editiert.]

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: 02. Dez. 2011 17:20    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 moppesle 10 Unities + Antwort hilfreich

Servus
Ich würde zum Extrahieren der Zahl nur zwei ReplaceSubText verwenden (1x für "M", 1x für "."):
ReplaceSubText(ReplaceSubText(NenndurchmesserGewinde , "M" , "") , "." , ",") ->ToReal() *1.5mm

Gruß
Bernd

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

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 02. Dez. 2011 17:52    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 moppesle 10 Unities + Antwort hilfreich

Ja stimmt, so nutz man nur einmal den langen Parameter. Ist somit übersichtlicher...
Nunja viele Wege führen nach Rom, der eine schnell und einfach, der andere weniger 
Die Signatur passt 

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 05. Dez. 2011 09:31    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 moppesle 10 Unities + Antwort hilfreich

Hallo Moppesle,

mit Formeln gibt es noch eine alternative Lösung für Deine Problemstellung:

1.
Aus dem Gewinde werden mit „->Extract(1,…)“ die Zeichen ab der zweiten Stelle ausgelesen.

2.
Die Anzahl der Stellen wird mit „Length()“ aus dem Gewinde ausgerechnet, damit die Formel auf einstellige und mehrstellige Gewindewerte passt. (-1, weil die erste Stelle als 0 zählt)

3.
Mit ->ToReal() wird die Zeichenfolge in eine Zahl verwandelt.

4.
*1mm ergibt eine Länge.

Also Beispiel:

Gegeben:
Parameter(Gew)=M10

Formel:

Parameter(Länge)=
Parameter(Gew)->Extract(1,Parameter(Gew)->Length()-1)->ToReal()*1mm

------------------
Gruß
Mörchen

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 05. Dez. 2011 13:29    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 moppesle 10 Unities + Antwort hilfreich

Hallo Mörchen,
Siehe den dritten Beitrag, das war auch mein (erster) Vorschlag. 

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 05. Dez. 2011 13:36    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 moppesle 10 Unities + Antwort hilfreich

Hi gladly,

sorry habe ich übersehen, Du hast recht! Sogar fast 1:1 genauso erklärt!!! (Ich habe heute Matschebirne wg. Erkältung...)

------------------
Gruß
Mörchen

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 05. Dez. 2011 19:18    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 ihr drei,

funktioniert wie gewollt.

He Mörchen danke für die detailierte Erklärung.
Dann versteh ich´s auch als Goofy 

Dankeschöön

Gruß Uwe

[Diese Nachricht wurde von moppesle am 06. Dez. 2011 editiert.]

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