Seite 1 von 2
Vorschlag zu Mid()
Verfasst: 08.02.2006 00:31
von al90
Der parameter Length ist immernoch nicht optional.
Ich schlage deshalb vor, dies in einer der nächsten versionen
nachzuholen, da dies eben normalerweise standard ist.
Was sagt Ihr dazu?
Verfasst: 08.02.2006 00:47
von FloHimself
Wieso sollte dieser denn optional sein?
Verfasst: 08.02.2006 00:52
von ts-soft
Und was soll dann passieren, nur ein Zeichen? Weil
alle Zeichen wäre blödsinn, dafür gibts ja Right()
Verfasst: 08.02.2006 01:08
von NicTheQuick
Ja, ich finde das mit dem optionalen Parameter auch eine gute Idee. Es ist
nämlich nicht das selbe wie [c]Right()[/c]. So sollte es praktisch
funktionieren.
Code: Alles auswählen
Procedure.s MidU(a.s, b.l, c.l = -1)
If c = -1
ProcedureReturn Mid(a, b, Len(a) - b + 1)
Else
ProcedureReturn Mid(a, b, c)
EndIf
EndProcedure
String.s = "Hallo du da"
Debug MidU(String, 4, 3)
Debug MidU(String, 4)
Hat noch jemand eine Idee, wie man das ganze auch als Makro
realisieren könnte? Ich habs nicht geschafft. Hab mir aber auch nicht viel
Zeit dafür genommen.
Verfasst: 08.02.2006 01:26
von ts-soft
Nur die Zählung ist von der anderen Seite:
Code: Alles auswählen
Procedure.s MidU(a.s, b.l, c.l = -1)
If c = -1
ProcedureReturn Mid(a, b, Len(a) - b + 1)
Else
ProcedureReturn Mid(a, b, c)
EndIf
EndProcedure
String.s = "Hallo du da"
Debug MidU(String, 4)
Debug Right(String, 8)
Ich wüßte nicht, wann ich es so rum vorteilhaft einsetzen könnte?
Verfasst: 08.02.2006 01:36
von FloHimself
NicTheQuick hat geschrieben:Hat noch jemand eine Idee, wie man das ganze auch als Makro realisieren könnte? Ich habs nicht geschafft. Hab mir aber auch nicht viel Zeit dafür genommen.
Mhhh.. es gibt kein "MacroIf" oder?

Verfasst: 08.02.2006 01:42
von ts-soft
Code: Alles auswählen
Macro MidU(a,b)
Mid(a, b, Len(a) - b + 1)
EndMacro
String.s = "Hallo du da"
Debug MidU(String, 4)
PB4 rulez
If geht schon, aber die Kombination, wie von Nick gepostet, wird wohl
nicht gehen. Ich denke das MidU makro sollte es aber auch tun
Verfasst: 08.02.2006 02:25
von al90
ts-soft hat geschrieben:Und was soll dann passieren, nur ein Zeichen? Weil
alle Zeichen wäre blödsinn, dafür gibts ja Right()
Nein das ist kein blödsinn. Seit den seligen C64 zeiten ist das so.
C64, Amiga (BB2, AmosPro) etc. Warum PB da so eigensinnig ist
habe ich bis heute noch nicht verstanden. Ein argument wie "Dafür gibts
Right()" ist nicht sinn der sache. Bei Right() muss ich nähmlich von hinten
anfangen zu zählen und bei Mid() von vorne. Manchmal (je nach programmierung)
setzt man dazu eine variable ein. Es ist halt blöd wenn man dann umrechnen
muss, nur um mit Right() von hinten beginnen zu müssen/können.
Ausserdem war ich (und sicherlich auch viele andere) schon
oft genug in der situation das man einen optionalen parameter brauchte.
Verfasst: 08.02.2006 02:32
von ts-soft
Kannst doch jetzt das Macro nehmen, oder hol die Brotkiste wieder raus

Verfasst: 08.02.2006 02:37
von al90
ts-soft hat geschrieben:[...] oder hol die
Brotkiste wieder raus

Aber ich habe doch gar keinen Hunger.
