Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ELCAD
  Teilstrings

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
  
Umspannwerke nach IEC 61850 leicht gemacht
Autor(16237) Thema:  Teilstrings (558 mal gelesen)

Ex-Mitglied

erstellt am: 06. Mrz. 2008 17:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo,

wir haben uns hier schon arg den Kopf zerbrochen, aber vielleicht hat jemand
von Euch noch eine Idee:

Wie kann man mehrere variable Teilstrings (Länge 2 bis 6 Zeichen) zusammenbauen
und wieder zerlegen?

Das Zusammenfügen ginge ja recht einfach: 

Code:
(3 & 4 & 5)>(6)

oder

(3 & "#" & 4 & "#" & 5)>(6)


Nur wie zerlege ich den String wieder in seine ursprünglichen Teilstrings?
Die Länge eines Strings kann ich zwar messen, aber das Ergebnis lässt sich
nicht weiterverarbeiten, da das der Code 1002 nicht kann.


P.S. Hintergrund ist, dass es zu wenige zusätzliche Codenummer gibt,
wir aber mehr als 10 Werte in den Klemmenplan übertragen wollen:
http://ww3.cad.de/foren/ubb/Forum38/HTML/001317.shtml#000000

------------------
Viele Grüße
Uli

 Wer nicht genießt, wird ungenießbar...  [CAD.de-smileys] [Elcad-Tauschbörse]

Rolf K.
Moderator
CAD-Konstrukteur


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

Beiträge: 1730
Registriert: 10.12.2002

ELCAD 2020 SP2
e3.2018
Windows 10
zuhause:
Paintshop Pro 2020
Cray XT4
Privileg SR 12 PR
Chivers Lemon Jelly

erstellt am: 06. Mrz. 2008 19:05    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 Uli,

vielleicht wäre der Längenoperator # eine Möglichkeit. Schau mal in der Hilfe unter "Übersetzungs-, Teilstring- und Längenoperator für Codes 1001, 1002, 1004, 1005, 1007 und 1015" nach. Also erst die Länge der Dialoge ermitteln und danach den Teilstringoperator [] verwenden.

------------------
Es grüsst
Rolf K.

   

[Diese Nachricht wurde von Rolf K. am 06. Mrz. 2008 editiert.]

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

DMa
Mitglied
MSRL Projektleiter / ELCAD Systembetreuer


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

Beiträge: 114
Registriert: 18.04.2002

ELCAD/AUCOPLAN - Immer aktuellste Version
... und das schon über 30 Jahre

erstellt am: 06. Mrz. 2008 19:22    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

Sali Uli
Habe mal etwas gebrütet über Dein Problem

Lösungsansatz

1) Alle Texte um Sonderzeichen (habe ein Space genommen) ergänzen, dass die Texte im Minimum 6 Zeichen lang sind
2) Alle Texte auf 6 Zeichen kürzen
3) Alle Texte Zusammenstellen (ergibt bei 3 Strings 18 Zeichen)
4) Text übertragen
5) Text zerlegen in Zeichen 1-6, 7-12, 13-18

Beispiel

...
  DIALOG,81,4999,"","Stromlaufsplan"
  DIALOG,82,51,"String 1","1234"
  DIALOG,83,51,"String 2","12345"
  DIALOG,84,51,"String 3","123456"
  DIALOG,85,1002,"String 1 & 6 Space",'(82&"˙˙˙˙˙˙")>!(88)'
  DIALOG,86,1002,"String 2 & 6 Space",'(83&"˙˙˙˙˙˙")>!(89)'
  DIALOG,87,1002,"String 3 & 6 Space",'(84&"˙˙˙˙˙˙")>!(90)'
  DIALOG,88,51,"String 1 & 6 Space",""
  DIALOG,89,51,"String 2 & 6 Space",""
  DIALOG,90,51,"String 3 & 6 Space",""
  DIALOG,91,1002,"String 1 auf 6 Zeich","(88[1,6])>!(94)"
  DIALOG,92,1002,"String 2 auf 6 Zeich","(89[1,6])>!(95)"
  DIALOG,93,1002,"String 3 auf 6 Zeich","(90[1,6])>!(96)"
  DIALOG,94,51,"String 1 auf 6 Zeich",""
  DIALOG,95,51,"String 2 auf 6 Zeich",""
  DIALOG,96,51,"String 3 auf 6 Zeich",""
  DIALOG,97,4999,"","zu bertragender String"
  DIALOG,98,1002,"String 1 & 2 & 3","(94&95&96)>!(99)"
  DIALOG,99,51,"String 1 & 2 & 3",""
...
  DIALOG,100,4999,"","Klemmenplan"
  DIALOG,101,1002,"String,Zeichen 1-6","(99[1,6])>!(104)"
  DIALOG,102,1002,"String,Zeichen 7-12","(99[7,12])>!(105)"
  DIALOG,103,1002,"String,Zeichen 13-18","(99[13,18])>!(106)"
  DIALOG,104,51,"String,Zeichen 1-6",""
  DIALOG,105,51,"String,Zeichen 7-12",""
  DIALOG,106,51,"String,Zeichen 13-18",""
...

Vielleicht hilft Dir das weiter

Gruss Daniel

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


Ex-Mitglied

erstellt am: 06. Mrz. 2008 19:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Tom,

der 1002er Code kann nur im Symbolbau geändert werden, er ist nicht variabel
und kann das Ergebnis der ermittelten Länge leider nicht verarbeiten.


Zitat:
Original erstellt von DMa:
Beispiel

  DIALOG,82,51,"String 1","1234"
...
  DIALOG,101,1002,"String,Zeichen 1-6","(99[1,6])>!(104)"
 


Hallo Daniel,

vielen Dank für Deine Mühe, super! Die Idee mit dem Auffüllen der einzelnen
Teilstrings hatten wir auch schon, nur leider lässt sich nach dem Übertragen
nicht mehr feststellen, wie lange der Teilstring vorher war. Wir hatten auch
darüber nachgedacht, die Längen zu ermitteln und in einem anderen String zu
übertragen, aber dann scheitert es am Code 1002. Er ist leider nicht variabel.

Bei Deinem Beispiel sieht man das Problem ganz gut. Vorher war der Teilstring
4 Zeichen lang, nach dem Zerlegen hat er 6 Zeichen.

Das dumme ist, dass ein Teilstring zwischen 2 und 7 Zeichen lang sein kann, somit
müsste man bei jedem Teilstring 5 Zeichen abfragen, ob es sich um aufgefüllte
Sonderzeichen handelt. Bei 4 Strings wären mindestens 100 Dialoge.

Eine wirklich harte Nuß...

------------------
Viele Grüße
Uli

  Wer nicht genießt, wird ungenießbar...  [CAD.de-smileys] [Elcad-Tauschbörse]

Rolf K.
Moderator
CAD-Konstrukteur


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

Beiträge: 1730
Registriert: 10.12.2002

ELCAD 2020 SP2
e3.2018
Windows 10
zuhause:
Paintshop Pro 2020
Cray XT4
Privileg SR 12 PR
Chivers Lemon Jelly

erstellt am: 06. Mrz. 2008 20: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

Hallo Uli,

es gibt zusätzliche 10 Codenummern für Klemmen, Ziel und Aderndaten, also insgesamt 30. Lässt sich damit etwas machen?

------------------
Es grüsst
Rolf K.

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


Ex-Mitglied

erstellt am: 06. Mrz. 2008 20:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Rolf,

leider nein. Auch diese Idee hatten wir, aber laut Aucotec funktioniert das nicht.
Sollten die 10 zusätzlichen Klemmen-Codes nicht ausreichen, kann man nicht auf
die anderen 20 ausweichen bzw. sie nicht "umfunktionieren".

------------------
Viele Grüße
Uli

  Wer nicht genießt, wird ungenießbar...  [CAD.de-smileys] [Elcad-Tauschbörse]

DMa
Mitglied
MSRL Projektleiter / ELCAD Systembetreuer


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

Beiträge: 114
Registriert: 18.04.2002

ELCAD/AUCOPLAN - Immer aktuellste Version
... und das schon über 30 Jahre

erstellt am: 07. Mrz. 2008 10: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

Sali Uli

Nochmals einen Input.

Bei meinem Vorschlag habe ich das Spacezeichen (ALT 255) als Füllzeichen gennomen. Also unsichtbar  

Ich hätte diese unsichtbaren Zeichen im Klemmenplan auch "angezeigt" und somit hätte ich gar nicht mehr wissen müssen, wie lang mein Urstring ist.

Alternativ könnte man natürlich auch die Strinlänge ermitteln und diese Stringlänge auch übertragen

Beispiel
1234xxL123xxxL12345xL
____xx4___xxx3_____x5
wobei x steht für Füllzeichen und L steht für die Stringlänge

Gruss Daniel 

[Diese Nachricht wurde von DMa am 07. Mrz. 2008 editiert.]

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


Ex-Mitglied

erstellt am: 07. Mrz. 2008 10:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Daniel,

noch mals vielen Dank für Deine Mühen!

Die Idee mit den "blanks" ist saugut, denn wenn ich den String
wieder in Teilstrings zerlege, fallen die blanks eh weg. Und den
dritten Teilstring brauche ich auch nicht auffüllen.

Code:
aaa____bbbb___ccccc

Das Zerlegen in Teilstrings ist dann auch kinderleicht.

------------------
Viele Grüße
Uli

  Wer nicht genießt, wird ungenießbar...  [CAD.de-smileys] [Elcad-Tauschbörse]

DMa
Mitglied
MSRL Projektleiter / ELCAD Systembetreuer


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

Beiträge: 114
Registriert: 18.04.2002

ELCAD/AUCOPLAN - Immer aktuellste Version
... und das schon über 30 Jahre

erstellt am: 07. Mrz. 2008 14: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

Sali Uli

Gern geschehen ...

oder ...  Wir helfen den Helfenden gerne, denn sie werden uns sicher auch wieder helfen, wenn wir denn Hilfe brauchen! 

Gruss Daniel

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


Ex-Mitglied

erstellt am: 07. Mrz. 2008 15:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Daniel,

wir helfen doch alle gerne, auch ganz ohne Gegenleistung. 
Schönes Wochenende 

------------------
Viele Grüße
Uli

  Wer nicht genießt, wird ungenießbar...  [CAD.de-smileys] [Elcad-Tauschbörse]

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)2024 CAD.de | Impressum | Datenschutz