Einzelnen Beitrag anzeigen

oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#19

Re: function mit zwei Rückgabewerten?

  Alt 24. Aug 2006, 13:26
Hi
Ich hatte keine Lust, jede Antwort auszuwerten, aber im Prinzip hab ich's schon durchgeschaut. Der Nachteil der Parameterübergabe mit Vatist, das du sehr schnell eine Variable veränderst, die du gar nicht geändert haben möchtest. Daher hier mal eine andere Lösung.

Delphi-Quellcode:
Function MyForm.Machwas(String_A : String): String;
Var String_B : String;
     Zahl : Integer;
begin
  .... machwas mit String_A ......
  .... setze String_B und den Wert der Zahl
  Result:=String_B+';'+IntToStr(Zahl);
end;
Aufruf im Programm
Delphi-Quellcode:
.....
ZweiWerteStr:=Machwas(einString);
StringAntwort:=Copy(ZweiWerteStr,1, Pos(';',ZweiWerteStr)-1);
ZahlAntwort:=StrToInt(Copy(ZweiWerteStr, Pos(';',ZweiWerteStr)+1,Length(ZweiWerteStr)-Pos(';',ZweiWerteStr)));

....
Zugegeben, etwas kompliziert, daher ersetze ich meist bei solchen sachen das Ergebnis Pos(...) unter Zuhilfenahme von xPos

Delphi-Quellcode:
....
xPos:=Pos(';',ZweiWerteStr);
StringAntwort:=Copy(ZweiWerteStr,1, xPos-1);
ZahlAntwort:=StrToInt(Copy(ZweiWerteStr, xPos+1,Length(ZweiWerteStr)-xPos));
....
Wenn du gut im Stringzerlegen bist, kannst du soviele Werte zurückliefern wie du willst. Übrigends, das Semikolon nehme ich meist, weil es in Wörtern halt nicht vorkommt, genausogut kannst du Unterstrich oder irgendwas anderes nehmen, um die Werte zu trennen.
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat