Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  String trennen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO
Autor Thema:  String trennen (1454 mal gelesen)
Castell
Mitglied
Technical Advisor Engineering


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

Beiträge: 302
Registriert: 22.05.2000

Das Wissen der Menschen
gehört der Menschheit.<P>SAP PLM, Notepad++, Windows 7

erstellt am: 03. Nov. 2004 14:55    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

Hola zusammen.

Ich lese eine CSV Datei in ein ME10 Makro ein und suche nun verzweifelt einen Befehl mit dem ich den String an dem ; teilen kann an um zwei Variablen zu füllen.
SUBSTR bringt mir nichts denn die Felder sind nicht immer gleichlang aber immer durch einen ; getrennt.

 

------------------
Viele Grüsse aus dem Schwabenländle

Massimo Castell

------------------
DIE inoffizielle Hilfeseite zum OneSpace Designer
http://osd.cad.de

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 03. Nov. 2004 15:08    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 Castell 10 Unities + Antwort hilfreich

LET L_str (SUBSTR String 1 ((POS String ";")-1))
LET R_str (SUBSTR String  ((POS String ";")+1) ((LEN String)-(POS String ";")))

------------------
meine LISP-Makros sind auf Heikos Hilfeseite
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

baumgartner
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 715
Registriert: 05.01.2001

Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10.
* ME10-Makros
* ME10-Makroschulungen

erstellt am: 03. Nov. 2004 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 Nur für Castell 10 Unities + Antwort hilfreich

hallo,
";" ist doch ein hervorragendes Trennungszeichen.

LET ZEILE ("1234;abcde;56")
LET N (POS ZEILE ";")  (* =5 *)
LET TEIL (SUBSTR ZEILE 1 (N-1))   (* = "1234" *)
LET ZEILE (SUBSTR ZEILE (N+1) 10000)   (* ="abcde;56" *)

Das Ganze jetzt natürlich in einer LOOP-Schleife und fertig.
War jetzt freihändig ohne Test.

EDIT: Walter war wieder mal schneller!

------------------
Grüsse aus dem Schwarzwald  
www.Andreas-Baumgartner.de

[Diese Nachricht wurde von baumgartner am 03. Nov. 2004 editiert.]

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

Castell
Mitglied
Technical Advisor Engineering


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

Beiträge: 302
Registriert: 22.05.2000

Das Wissen der Menschen
gehört der Menschheit.<P>SAP PLM, Notepad++, Windows 7

erstellt am: 03. Nov. 2004 15: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

WOW !!

Ich bin erstaunt.

Das das ; ein tolles Trennzeichen ist, dass weiß ich, sonst hätte ich es nicht für dei CSV benützt. Nur wußte ich nicht wie weitermachen.

Vielen Dank an beide.

------------------
Viele Grüsse aus dem Schwabenländle

Massimo Castell

------------------
DIE inoffizielle Hilfeseite zum OneSpace Designer
http://osd.cad.de

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 03. Nov. 2004 15:17    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 Castell 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von baumgartner:
EDIT: Walter war wieder mal schneller!

HiHiHi 

------------------
meine LISP-Makros sind auf Heikos Hilfeseite
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 05. Nov. 2004 08:03    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 Castell 10 Unities + Antwort hilfreich

Hallo, ich hatte da irgendwo mal eine Funktion gefunden, die das macht was du willst und per Parameterübergabe sehr variabel einsetzbar ist.

Funktion <kompletter string> <trennzeichen> <Position des Teilstrings>
Spalte_str 'Willi;Butz' ';' 0
Die Rückmeldung enthält den Teilstring zwischen den Trennzeichen
0 ist Willi, 1 ergibt Butz

Anwendungsbeispiel bei zeilenweisen einlesen einer CSV-Datei und befüllen einer logischen Tabelle.
    READ_FILE 1 Zeile
    EXIT_IF (Zeile='END-OF-FILE')
    WRITE_LTAB 'x_ltab' i 1 (STR(Spalte_str Zeile ';' 0))
    WRITE_LTAB 'x_ltab' i 2 (STR(Spalte_str Zeile ';' 1))
    WRITE_LTAB 'x_ltab' i 3 (STR(Spalte_str Zeile ';' 2))
   
Und hier das Makro
DEFINE Spalte_str
    PARAMETER String1
    PARAMETER Trenn_str
    PARAMETER Spalte
    IF (SPALTE > 0)
      (Spalte_str (STR_AB (String1+Trenn_str) ( (POS String1 Trenn_str)+1))
                  (Trenn_str) (Spalte-1))
    ELSE
      IF ( (POS String1 Trenn_str) >0 )
      (SUBSTR String1 1 ((POS String1 Trenn_str)-1) )
      ELSE
      (String1)
      END_IF
    END_IF
END_DEFINE

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

Fan-ME10
Mitglied
DV-Adminstrator, Konstrukteur


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

Beiträge: 543
Registriert: 21.08.2001

Erare humanum est

erstellt am: 05. Nov. 2004 09: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 Nur für Castell 10 Unities + Antwort hilfreich

Hallo Dittrich,

"STR_AB" kenn ich nicht. Welche Version ME10 verwendest du denn?

------------------
Gruß Wilfried 

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

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 05. Nov. 2004 09:23    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 Castell 10 Unities + Antwort hilfreich

Sorry, str_ab ist eine weitere Funktion. Das ist halt der Nachteil von Modularisierung.

DEFINE Str_ab
    PARAMETER String
    PARAMETER Beginn
    IF (Beginn <= LEN (STR String))
      (SUBSTR (STR String)  Beginn (LEN (STR String) - Beginn + 1 ))
    ELSE
      ('')
    END_IF
END_DEFINE

Wenn man die beiden Bausteine an den Anfang der Datei packt, in der das Makro enthalten ist, das diese Funktionen verwenden soll, funktioniert es nach dem Input.

[Diese Nachricht wurde von Dittrich am 05. Nov. 2004 editiert.]

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

Fan-ME10
Mitglied
DV-Adminstrator, Konstrukteur


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

Beiträge: 543
Registriert: 21.08.2001

Erare humanum est

erstellt am: 05. Nov. 2004 10: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 Nur für Castell 10 Unities + Antwort hilfreich

Hallo Dittrich,

toll!! 10U's für dich.

------------------
Gruß Wilfried 

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

Castell
Mitglied
Technical Advisor Engineering


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

Beiträge: 302
Registriert: 22.05.2000

Das Wissen der Menschen
gehört der Menschheit.<P>SAP PLM, Notepad++, Windows 7

erstellt am: 09. Nov. 2004 14:57    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

Hola.

Wie es der Teufel will. Wenn man etwas fertig hat, dann kommen schon die Erweiterungen. Und schon wird die CSV-Datei 4 spaltig.

Danke Dittrich für deine Lösung.

Und Danke nochmals allen hier.

------------------
Viele Grüsse aus dem Schwabenländle

Massimo Castell

------------------
DIE inoffizielle Hilfeseite zum OneSpace Designer
http://osd.cad.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