| | | Umspannwerke nach IEC 61850 leicht gemacht |
Autor(16237)
|
Thema: Teilstrings (558 mal gelesen)
|
Ex-Mitglied
|
erstellt am: 06. Mrz. 2008 17:03 <-- editieren / zitieren -->
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
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben:
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 / zitieren -->
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
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 / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 06. Mrz. 2008 20:17 <-- editieren / zitieren -->
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
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 / zitieren --> Unities abgeben:
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 / zitieren -->
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
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 / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 07. Mrz. 2008 15:01 <-- editieren / zitieren -->
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 >>)
|