Es gibt mehrere Möglichkeiten: Eine davon
Mehrere Values:
FORMPOS=264=128,...
Sowas schreiben:
Sowas LesenCode:RnCsvWrSep(csvref, "FORMPOS") RnCsvWrVal(csvref, "264") RnCsvWrVal(csvref, "128")
Da mach ich es aber immer so, daß die Routine ihre Values selber liest oder schreibt, d.h. ich drück' ihn einfach den CSVREF Handle in die HandCode:RnCsvRdSep(csvref, Key) if Key = "FORMPOS" then RnCsvRdVal(csvref, X_VAL) ("264") RnCsvRdVal(csvref, Y_VAL) ("128")
Da kann sich die Routine selber drum kümmern, da sie ja am besten weiss, was sie braucht.Code:RnCsvRdSep(csvref, Key) if Key = "FORMPOS" then sub_routine (CsvRef as Integer) Elseif Key = "SAUBACKE" then sub2_routine (CsvRef as Integer) public sub_routine (CsvRef as Integer) RnCsvRdVal(csvref, X_VAL) ("264") RnCsvRdVal(csvref, Y_VAL) ("128") public sub2_routine (CsvRef as Integer) RnCsvRdVal(csvref, SAU_VAL) ("???")
Da das "RdVal" niemals über das konkrete Element hinauskommt, kann da nix passieren, Also wenn nur ein Value da ist, kann die Sub auch zwanzigmal RdVal sagen, ohne was durcheinander zu bringen.
Andere Variante, auch gern genommen:
In einem solchen String stehen nur Keys und werte für EINE Funktion
Die Funktion als Key ohne value vorne.
"FORMPOS,X=100,Y=20,TOPX=233,TOPY=200"
Dann würde die Hauptroutine nur einen RdKey machen und dann die Funktionen mit dem CsvRef aufrufen, dann soll die selber lesen, was sie braucht.
Dritte Variante, etwas aufwendiger:
Irgendein Value ist selbst ein Key-Value string (Das geht beliebig rekursiv). Das erklär' ich noch, wie das geht






Zitieren

Lesezeichen