Hey, nur ne kurze Frage zur Programmierlogik:
//Hängt einen Wert an den Array an
global func ArrayAdd(& anArray, xnNew, bool bNoDuplicates)
{
if (GetType(anArray) != C4V_Array)
return -1;
if (bNoDuplicates)
{
var dTemp = ArrayDataIndex(anArray, xnNew);
if (dTemp != -1)
return dTemp;
}
anArray[GetLength(anArray)] = xnNew;
return GetLength(anArray) - 1;
}
liste1 = ["hallo"]
liste2 = liste1
ArrayAdd(liste2,"tschüss")
Ändert sich dabei nun auch Liste1? Oder nur Liste2?
edit: es sind local oder static variablen, deswegen ists wichtig.
und eine ähnliche Problemstellung:
//Verschmiltz zwei Arrays
global func ArrayAddArray(& anArray, array anArray2, bool bNoDuplicates)
{
if (GetType(anArray) != C4V_Array)
return -1;
if (GetType(anArray2) != C4V_Array)
return -1;
if (!GetLength(anArray2))
return GetLength(anArray);
for (var xTemp in anArray2)
ArrayAdd(anArray, xTemp, bNoDuplicates);
return GetLength(anArray);
}
liste1 = ["hallo"]
liste2 = ["tschüss"]
liste3 = liste1
ArrayAddArray(liste3,liste2)
Ziel ist es, die beiden listen 1 und 2 zu kombinieren, ohne die liste1 und liste2 selbst zu verändern. Geht das so?
>Ändert sich dabei nun auch Liste1? Oder nur Liste2?
Dazu steht in der Doku:
>Wird ein Array einer Variablen zugewiesen oder einer Funktion übergeben, bekommt diese Variable eine eigene Kopie des Arrays.
ArrayDataIndex
brauchst du übrigens nicht, sowas ist schon eingebaut: http://wiki.nosebud.de/wiki/Undokumentiertes#GetIndexOf
ah alles klar, danke dir
Die globalen funktionen habe ich fertig übernommen, gut möglich, dass die etwas älter sind. Solange sie funktionieren ist alles gut
Dennoch danke für den Hinweis