Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Jérôme am 26.11.02 - 16:15:58

Titel: Call by Value/by Reference
Beitrag von: Jérôme am 26.11.02 - 16:15:58
Kann man in Notes eigentlich Variablen per Referenz bzw. per Wert übergeben?

In meinem Code sieht's in etwa so aus:

Code
Dim strTemp1, strTemp2 As String

strTemp1 = "Vorname Zweitname Nachname"
strTemp2 = SplitName ( strTemp1)


Wenn ich am Ende haben beide Variablen bei mir den gleichen Wert - kann ich das irgendwie verhindern?

Danke schön im Voraus!
Jérôme
Titel: Re:Call by Value/by Reference
Beitrag von: Till_21 am 26.11.02 - 16:26:03
das liegt aber nicht an dem stück code, dass du hier zitiert hast.
das liegt an der function Splitname, die den parameter weiterverarbeitet und nicht einfach nur den manipulierten string zurueckgibt.
in deinem fall muesste der funktionsaufruf so lauten :
call splitname(strTemp1)

till
Titel: Re:Call by Value/by Reference
Beitrag von: Jérôme am 26.11.02 - 16:31:55
Hups. Man lernt nie aus.

Dann sollte ich also immer die an die Fkt. übergebene Variable in der Funktion nochmal neu in einer anderen Variablen speichern? Außer, wenn ich sie wirklich verändern will?
Titel: Re:Call by Value/by Reference
Beitrag von: Till_21 am 26.11.02 - 16:39:42
Hups. Man lernt nie aus.

Dann sollte ich also immer die an die Fkt. übergebene Variable in der Funktion nochmal neu in einer anderen Variablen speichern? Außer, wenn ich sie wirklich verändern will?

Nicht in einer anderen Variable, sondern in der variable, die die funktion repräsentiert :
d.h. eine funktion hat immer einen rueckgabewert :
in dem Beispiel ein string:
function tostring(inputtmp) as string
  tostring = cstr(inputtmp)
end function
Titel: Re:Call by Value/by Reference
Beitrag von: Jérôme am 26.11.02 - 16:58:44
Na, das hab ich aber genauso gemacht...

Was ich aber auch gemacht habe, ist, in der Funktion selbst mit der Variablen, die ich übergeben habe, zu arbeiten

Function SplitName (strUserName As String)
  .
  .
  .
  strUserName = Left$ (strUserName, 5)
  .
  .
  .
  SplitName = strUserName
End Function

So in etwa...
Titel: Re:Call by Value/by Reference
Beitrag von: Jérôme am 19.12.02 - 15:01:06
okay, ich hab die Lösung...

für Übergaben per Wertkopie (Call by value) verwendet man einfach das Schlüsselwort byval vor dem Variablen-Namen.

*froi* Selbst rausgefunden ;)