In the first file array.txt, that's how I want the array to be. I wrote that in notepad. Loading this into Construct does not changes the array values.
That's because it's not a valid array file. The array object uses its own array files in a special binary format. This is absolutely necessary to store information such as the type of the data held in an element (string/float/integer), the dimensions of the array etc. etc.
In the second file array2.txt, it's the result of Construct's array saving. What.
An example of the binary format the Array object saves. It's not possible to manually write an array saved file in notepad.
The third file is the .cap I used for testing.
The first thing the file does is resize the array to a zero sized array. All dimensions must be 1 or more for there to be any elements. Do the multiplication: 3 x 3 x 0 = 0 elements! You probably meant 3 x 3 x 1. The array object ignores the set dimensions call because it doesnt allow you to create a zero sized array - I've changed this for 0.89 though, which will allow zero sized arrays (so you don't get confused with the wrong dimension sizes).
In this .cap when debugging it and checking the array, I can only see the X values I choose
Hmm, a limitation in the Array object's debugging. It's coded specifically only to show the first values on the X axis, ie. all values where Y = 0 and Z = 0. I did this because with a 100 x 100 x 100 array, you'd end up with the debugger spammed with a million entries which could be quite slow or hard to use. I'll try come up with something better.
Compare array value at X,Y,Z
Added for 0.89, woops!
As for your array.txt file you want Construct to load: it's impossible to write a loader for this file! Should I interpret the first line as four numbers, 1, 1, 1, 1, or a single number, 1111? It's ambiguous and your way would be limited to single character values anyway, so this is the kind of thing you need a custom loader for.