HM-Skript: bestimmtes Element einer Liste ändern

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
dtp
Beiträge: 6990
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart
Hat sich bedankt: 9 Mal
Danksagung erhalten: 38 Mal

HM-Skript: bestimmtes Element einer Liste ändern

Beitrag von dtp » 28.06.2019, 11:06

Hallo,

will man mit einem HomeMatic-Skript ein bestimmtes Element einer Liste ändern, so geht das meines Wissens nach nur mit einer foreach-Schleife. Hier mal ein Beispiel:

Code: Alles auswählen

string list = "Dies|ist|ein|Test";
string changeIndex = 3;
integer cnt = 0;

string newList = ""; string element;

foreach(element, list.Split("|")){
  if(cnt == changeIndex){element = "Erfolg";}
  newList = newList#element#"|";
  cnt = cnt + 1;
}
list = newList.Substr(0, newList.Length()-1);

WriteLine(list);
Das obige Skript macht aus der Liste "Dies|ist|ein|Test" die neue Liste "Dies|ist|ein|Erfolg".

In anderen Programmiersprachen wäre das mit einem simplen Einzeiler der Form

Code: Alles auswählen

string list = "Dies|ist|ein|Test";
string changeIndex = 3;

list.NewValueByIndex(changeIndex) = "Erfolg";
möglich. Könnte man nicht etwas Ähnliches für die HomeMatic implementieren?

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“