Guten Morgen in die Runde,
ich habe folgendes Problem, das ich gern in einem Script lösen möchten.
In einem Feld (Spalte) einer Attribut-Tabelle stehen Einträge in folgender Form:
6921/19/7
7894/12547/0
Die erste Zahl ist immer vierstellig, die zweite Gruppe variiert, die dritte besteht
immer aus "/" und einer Zahl.
Ich möchte aus den Einträgen in ein neues Feld übernehmen
WENN die letzten zwei Stellen "/0" sind NUR die zweite Gruppe ohne "/"
WENN die letzten zwei Stellen davon abweichen (also "/1" oder "/3")
dann die zweite UND die dritte Gruppe (also "12456/1" oder "32/5" z.B. )
Wer kann helfen und meinen Knoten lösen ?
Klaus
ich habe folgendes Problem, das ich gern in einem Script lösen möchten.
In einem Feld (Spalte) einer Attribut-Tabelle stehen Einträge in folgender Form:
6921/19/7
7894/12547/0
Die erste Zahl ist immer vierstellig, die zweite Gruppe variiert, die dritte besteht
immer aus "/" und einer Zahl.
Ich möchte aus den Einträgen in ein neues Feld übernehmen
WENN die letzten zwei Stellen "/0" sind NUR die zweite Gruppe ohne "/"
WENN die letzten zwei Stellen davon abweichen (also "/1" oder "/3")
dann die zweite UND die dritte Gruppe (also "12456/1" oder "32/5" z.B. )
Wer kann helfen und meinen Knoten lösen ?
Klaus
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Mi., 28.09.2005 - 09:19
Permalinkfor each rec in theVTab
theValStr = theVTab.ReturnValueString(theOldFld,rec)
theValList = theValStr.AsTokens("/")
theFirst = theValList.Get(0)
theSecnd = theValList.Get(1)
theThird = theValList.Get(2)
if (theThird = "0") then
theVTab.SetValue(theNuFld,rec,theSecnd)
else
theVTab.SetValue(theNuFld,rec,theFirst+"/"+theSecnd)
end
end
Gespeichert von Gast am Mi., 28.09.2005 - 09:45
Permalinkdanke für die schnelle Antwort. Nun meldet er "AV-Array : Index 2 nicht im Bereich 0..1"
Was meint er damit (oder "sie" oder "es")
Klaus
Gespeichert von Maxilla am Mi., 28.09.2005 - 09:55
Permalink"6921/19/7"
wird eine Liste mit
List.Get(0) = "6921"
List.Get(1) = "19"
List.Get(2) = "7"
"AV-Array : Index 2 nicht im Bereich 0..1" sagt dir: Du hast in deinem Feld zumindest einen Wert, dem (im Bsp.) der Slash ("/"), die sieben ("7") oder beides fehlt, d.h. die List hat nur 2 Elemente, die Abfrage eines dritten ist also ein (AVArray-) Fehler.
Eine Möglichkeit den Fehler abzufangen, wäre es nach der Variablendefinition von theValList folgendes einzufügen:
if (theValList.count <> 3) then continue end
dann lässt er den Datensatz einfach aus. In dieser If-Schleife könnte man sie/ihn/es natürlich auch was anderes machen lassen (Kaffee holen...)
Gespeichert von Gast am Mi., 28.09.2005 - 10:28
Permalinkbeim zeilenweise überprüfen bin ich rauf gekommen, daß in meiner Bespieltabelle (bevors ans Eingemachte geht)ein falscher Eintrag drin war (mea culpa)
Es läuft jetzt hervorragend !
Klaus
(Ich trinke nur TEE)