Domino 9 und frühere Versionen > Entwicklung
Einem String-Array ein Array zuordnen
TMC:
@Bernhard:
Und genau das, also ob UBound = 0 und nicht 1, muss ich abfangen. Gehört für mich zu Errorhandling. Ich kann ja nicht 100% sicher sein, dass das übergebende Array nicht mit 0 anfängt sondern mit 1.
Ich will auch keine Arrays verketten, war nur ein Versuch, um Array B in Array A zu übernehmen (siehe oben). Ich will in meiner Routine nur Arrays vom Typ String. Andere scalare Datentypen machen hier vom Kontext keinen Sinn (es werden u.a. Itemnamen übergeben, daher mein Wunsch dieser Einschränkung von vorne weg auf String, damit alles klar ist - und nicht wer auf die Idee kommt da ein Integer oder so reinzukippen).
@Axel: Danke für die Infos über andere Programmiersprachen.
Fazit:
Es führt wohl kein simpler Weg daran vorbei, Variant zu nehmen.
Schade, aber wie Axel erwähnte, wird das wohl eh in vielen Programmiersprachen nicht so streng gehandhabt, wie ich das im Moment mache.
Ich nehme jetzt Variant ;D
koehlerbv:
Jetzt haben wir beide von Ubound geschrieben, aber Lbound gemeint (wie Du in Deinem ersten Posting ja schon schriebst). Das Lbound ist Dir aber durch Option Base bekannt. Bei sowas darf nix schief gehen (oder in dem Programm werden gar keine Regeln eingehalten).
Ich habe den Eindruck, Du suchst in Deinem Fall keine allgemeingültige Routinen, sondern eine ganz spezielle. Wenn Du trotz Deines speziellen Falles (da haben dann also auch keine "User" etwas daran zu suchen !) noch Prüfungen durchführen möchtest, dann kannst Du das simpelst mit der Datatype-Function machen.
Auch wenn Deine Routine sehr speziell sein sollte: Sauberes Coding erfordert trotzdem Prüfung auf Isempty und Isscalar - Du kannst wohl kaum sicherstellen, dass Dir nicht doch selber ein Fehler durchrutscht und Du mal die "falsche" Variable an Deine Routine übergibst.
Bernhard
Marinero Atlántico:
@Mathias: Ich hatte vor gar nicht allzu langer Zeit den Wahn jeden dämlichen Fehler abzufangen. Aus meiner Erfahrung wurde das irgendwann wirklich unproduktiv und unnötig anstrengend.
Sich über Error Condition und nachvollziehbaren code nachzudenken finde ich wirklich gut, aber es es gibt echt Punkte, wo das übertrieben ist. Dies ist so einer, würde ich sagen.
Gruß Axel
TMC:
Oh ja, da haben wir UBound und LBound verwechselt (aber jeder wusste wohl was gemeint war) ;)
Option Base hin oder her, Default ist ja 0. Trotzdem muss ich abfangen, ob jemand nicht sowas macht: Dim strArr(1 to 2) as String. Das kann aber auch simpelst im zu verarbeitenden Teil abgefangen und korrigiert werden.
IsEmpty, IsScalar etc. is klar, das muss i.d.R. sein bei Array-Funktionen.
Hier muss ich jetzt noch zusätzlich abfragen, ob ich ein gültiges String bekomme, da ich ja mit Variant als Array arbeiten will.
koehlerbv:
Full ack, Axel. Fehlerhaft zugeordnete Datentypen geben ja spätestens zur Laufzeit sowieso einen "Fehler !"-Schrei von sich.
Interessanter wird es, wenn ich (im gewissen Rahmen) "irgendwas" in eine Function 'reinkippen will, aber ein definiertes Ergebnis von ihr erwarte.
Ein Musterbeispiel ist das "neue" ArrayAppend - es erwartet von mir schon Arrays. Aber die habe ich vielleicht noch gar nicht ...
Bei ArrayAppend (Variable1, Variable2) = Variable3 (was bei mir also nach wie vor eine eigene Routine übernimmt) erwarte ich, das Variable1 EMPTY, SCALAR oder ARRAY sein kann. Variable2 kann EMPTY, SCALAR oder ARRAY sein. Heraus kommt immer entweder ARRAY oder EMPTY. Das macht die Reaktion leichter ;D
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln