Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Rechnen mit Variablen mit führenden Nullen

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:  Rechnen mit Variablen mit führenden Nullen (511 mal gelesen)
Hohlräumer
Mitglied
Fertigungsmittelkonstrukteur


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

Beiträge: 35
Registriert: 26.04.2008

Win XP
CATIA V5 R19
VB 2010 Express

erstellt am: 27. Mrz. 2009 15: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

Hallo zusammen,

Die Frage paßt hier wahrscheinlich nicht ganz rein, aber ich weiß sonst nicht wo ich diese Frage stellen sollte, also bitte um Rücksicht.

Ich lese die Sachnummern von einzelnen Bauteilen aus und falls diese spiegelbildlich sind erhöhe ich die Sachnummer um den Wert 1. (linke Seite immer ungerade rechts immer gerade).
Das klappt soweit auch ganz gut. Leider hab ich nun das Problem bei Sachnummern mit führenden Nullen.
Da macht er antselle von 001 -> 002, 001 -> 402

Hier mal der Teilcode:

    v_Name = Left(oSelNS.partNumber, 7) 'hier wird aus einer Selection die Sachnummer ausgelesen
    v_Name1 = Left(v_Name, 4)    'hier wird die Sachnummer gesplittet
    v_Name2 = Mid(v_Name, 5, 3)  'hier wird die Sachnummer gesplittet
    tempr = v_Name
    Mid(tempr, 5) = Right(CStr(CInt(Mid(v_Name, 5, 3)) + 1), 3)    'hier wird die rechte Sachnummer erzeugt, funktioniert solange keine führenden Nullen
                                                                                      vorhanden sind

gibt es eine Möglichkeit daß er die Nullen berücksichtigt?

für jede Hilfe bin ich dankbar

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 27. Mrz. 2009 18: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 Hohlräumer 10 Unities + Antwort hilfreich

Hallo Hohlräumer,

anbei ein anderer Ansatz:

Code:
dim strTemp as string
strTemp="001" 'Variablenwert, die inkrementiert werden soll

dim intTemp as integer
dim intNew as integer
dim strNew as string

if IsNumeric(strTemp) then
  intTemp=cint(strTemp)
  intNew=intTemp+1
  'funktioniert in VBA
  strNew=Format(intNew,"000") 'Formatierung einer Zahl, string wird immer mindestens 3 Zeichen lang
  'in CATScript/VBScript wäre es wahrscheinlich FormatNumber, da kenne ich aber die Syntax nicht
else
  'strTemp is keine Zahl
end if
'ab hier hast du dann in strNew deine neue Zahl und kannst weiterarbeiten.



Gruß,
Zoltan

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

Hohlräumer
Mitglied
Fertigungsmittelkonstrukteur


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

Beiträge: 35
Registriert: 26.04.2008

Win XP
CATIA V5 R19
VB 2010 Express

erstellt am: 27. Mrz. 2009 20:42    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 zoltan,

Danke für die Info. Werd das am Montag glecih mal ausprobieren.

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 27. Mrz. 2009 22: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 Hohlräumer 10 Unities + Antwort hilfreich

ich addiere bei sowas immer eine 1000er oder so dazu, das dann wieder abgezogen wird 

Die Zahl 123450001 +1000,
den Split der letzten 4 Ziffern,
addieren von  +1,
Zahl wieder zusammen bauen und 1000 abziehen.

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

Hohlräumer
Mitglied
Fertigungsmittelkonstrukteur


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

Beiträge: 35
Registriert: 26.04.2008

Win XP
CATIA V5 R19
VB 2010 Express

erstellt am: 28. Mrz. 2009 16: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

Behält er dann die führenden nullen?

wenn ich jetzt zum beispiel die Nummer 1234001 hab, addiere ich dann 100 und trenne die etzten 3 Ziffern ab, dann bekomme ich ja 101. 1 dazu macht ja dann 102 und 100 wieder abziehen hätte ich ja dann 2, aber ich benötige ja die 002.

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 30. Mrz. 2009 04: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 Hohlräumer 10 Unities + Antwort hilfreich

wenn du die Subtraktion noch innerhalb des Splits vollziehst, dann kommt 2 heraus.

Mein Vorschlag war nur ein Tipp wie es möglicherweise auch gehen würde ohne den String mit einem ZahlenFormat zu belegen.

Aber wenn bei dir bei  001 -> 002, 001 -> 402 macht, was hindert dich daran den Split anders zu definieren?

Bzw: Wenn die Sachnummer X040001 lautet, nur die Zahlen extrahieren, dabei führende Nullen beachten ,)

oder Mid(tempr, 5) = Format(Right(CStr(CInt(Mid(v_Name, 5, 3)) + 1), 3), "000") verwenden.

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



Entwicklungsingenieur Medizintechnik (w/m/d)

CeramTec ist ein führender Entwickler und global aktiver Hersteller und Lieferant von Spezial­lösungen aus Hoch­leistungs­keramik mit mehr als 3.400 Mitarbeitern.

Unsere Lösungen sind welt­weit im Fahr­zeug- und Maschinen­bau, in der Medizin­technik, der Elektronik, der Luft- und Raum­fahrt­technik und der Energie- und Umwelt­technik im Einsatz. Willkommen bei den Keramik-Experten.

Für ...

Anzeige ansehenMedizintechnik
Hohlräumer
Mitglied
Fertigungsmittelkonstrukteur


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

Beiträge: 35
Registriert: 26.04.2008

Win XP
CATIA V5 R19
VB 2010 Express

erstellt am: 30. Mrz. 2009 07:49    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

so, habs jetzt drin
hat mit dem Format ganz gut funktioniert.

Nochmals Danke an alle

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