abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

zeichenfolgen interpretieren

zzyzx
Newcomer
Ich versuch gerade, aus einer Profilbezeichnung die darin enthaltene Profilhöhe zu extrahieren, im Parameterskript habe ich das:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">values "mbtyp" "B 140", "B 170", "B 200", "A 230", "A 260",
"A 300", "C 320", "C 350"
parameters ph = strsub (mbtyp, 3,3) der Parameter ph zeigt jetzt auch brav die Zahl an, solange er als Zeichenfolgenparameter definiert ist
.
wie bekomme ich aber daraus eine Zahl, mit der ich direkt rechnen kann??? :confused: :winken:
5 ANTWORTEN 5
zzyzx
Newcomer
weiss das echt niemand???
Anonymous
Nicht anwendbar
Ehe man sich darüber 1 Std. den Kopf zerbricht, sollte man die Auswertung lieber per Hand vornehmen, wenn es sich nicht gerade um 50 Values-Werte handelt: IF mbty="c 129" THEN .....
zzyzx
Newcomer
naja, es sind so etwa 20 Werte 🙄 muss wohl sein...
:winken:
Anonymous
Nicht anwendbar
das ich jetzt den text aus dem handbuch hier reinkopiere hat nichts mit anderen threads zu tun 😉 ... sondern damit, dass ich faul bin und der text relativ selbsterklärend... ich glaube damit kann dir geholfen werden:

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">SPLIT (zeichenfolge, format, variable1 [, variable2, ..., variablen])

Spaltet den Zeichenfolge-Parameter in einen oder mehrere numerische oder textliche Teile dem Format entsprechend. Der Spaltungsprozeß stoppt, wenn der erste ungeeignete Teil vorkommt. Ergibt die Anzahl der erfolgreich eingelesenen Werte.

zeichenfolge: die zu spaltende Zeichenfolge

format: beliebige Kombination von konstanten Zeichenfolgen, %s und %n -s. Teile der Zeichenfolge müssen den konstanten Zeichenfolgen angepaßt sein, %s kennzeichnet jeden Zeichenfolge-
Wert, der durch Leertasten oder Tabulatoren umbegrenzt wird, während %n einen numerischen Wert kennzeichnet.

variable(i): die Variablenamen, die die gespalteten Zeichenfolgeteile speichern

Beispiel:
ss = "3 pieces 2x5 beam"

n = SPLIT (ss, "%n pieces %nx%n %s", num, ss1,
size1, ss2, size2, name)
IF n = 6 THEN
PRINT num, ss1, size1, ss2, size2, name
! 3 pieces 2 x 5 beam
ELSE
PRINT "ERROR"
ENDIFdamit kannst du zahlen zum weiterrechnen aus strings extrahieren. bedingung natürlich, das die strings einem (immer demselben) muster entsprechen, aber das tun sie ja wohl...
zzyzx
Newcomer
... selbsterklärend ???
nunja;
jedenfalls habe ichs mit dem Hinweis auf die Funktion split irgendwie geschafft.
.
für alle, die wie ich auch zu blöd sind, ein Handbuch zu lesen, hier eine kurze Erklärung:
.
* die Funktion Split wirft anscheinend als Wert die Anzahl der extrahierbaren Parameter aus.
* mbtyp ist die Variable, die die zu zerlegende Zeichenfolge enthält
* "%s %n/%n" ist die Formatierungsvorschrift, der die Variable entspricht: erst Text, dann Zahl, dann Schrägstrich, dann Zahl. (seltsam: der Schrägstrich wird als zu extrahierende Variable gesehen???)
* dann kommen die Variablen, die die Teile aufnehmen sollen (tx1, phmm, tx2, pdhmm); tx2 ist fürn Müll, die andern werden gleich umgerechnet und zugeordnet

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">values "mbtyp" "B 140/150", "B 170/155", "B 200/160"

tmp1 = split (mbtyp, "%s %n/%n", tx1, phmm, tx2, pdhmm)
parameters ph = phmm/1000
parameters pd = pdhmm/100000
parameters splt = tmp1
if tx1 = "B" then parameters pb = 0.056
if tx1 = "A" then parameters pb = 0.070
if tx1 = "C" then parameters pb = 0.088Ein dickes Dankeschön an JB; ich hab die anzuwendende Funktion erst gar nicht gefunden 😉 :winken: :winken: :winken:

[ 04. April 2003, 13:03: Beitrag editiert von: zzyzx ]

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen