Author: SerpentSerpent escribió: ↑Lun Ago 07, 2017 2:43 pm Hi, napisałem funkcję która podmienia wartość w podanym miejscu, w dowolnej tablicy wielowymiarowej.
Przykład użycia:Código: Seleccionar todo
// arr - tablica // pos - tablica pozycji // value - nowa wartość do wstawienia Export Function ReplaceIn(arr, pos, value); var i, tmp, s_arr; begin if pos < 1 then exit; if pos = 1 then result := Replace(arr, pos[1], value) else begin tmp := arr; s_arr := [tmp]; for i = 1 to pos-1 do begin tmp := tmp[pos[i]]; s_arr := s_arr ^ [tmp]; end; tmp := Replace(tmp, pos[pos], value); s_arr := Replace(s_arr, s_arr, tmp); for i = s_arr downto 2 do begin tmp := Replace(s_arr[i-1], pos[i-1], s_arr[i]); s_arr := Replace(s_arr, i-1, tmp); end; result := s_arr[1]; end; End;
Wyświetli [ [1, 2], [ [15, 3], [1, [11, 88]], [3, 4]] ].Código: Seleccionar todo
t := [ [1, 2], [ [15, 3], [1, [11, 12]], [3, 4]] ]; t := ReplaceIn(t, [2, 2, 2, 2], 88); display_strings := t;
Topic: https://forum.original-war.net/viewtopi ... =42&t=4945