Newsgroup: it.comp.lang.javascript
Titolo: Help array bidimensionale da file .txt!

Ciao! Mi servirebbe una mano per un progetto scolastico.
Io e il mio gruppo siamo molto indietro cosi' ho pensato di cercare qui
qualche informazione.
Dovrei creare un'array bidimensionale partendo da un array presente su
un file di testo esempio
#..@
~..@
~..#
Supponiamo che il file si chiami ad esempio mappa.txt
In questo caso dovrei quindi creare un array 4x4 contenente ad esempio
nella posizione (0,0) il carattere # e cosi' via...
Siccome la dimensione e' variabile non posso limitarmi ad inserire un
carattere alla volta, ma dovrei fare un conteggio dei caratteri prima
di creare l'array.
Qualche anima buona puo' spiegarmi come fare??? Glie ne sarei veramente
grato!!!
Thanks!

 ~..#
premesso che non puoi leggere un file txt via javascript in ambiente
internet (puoi far qualcosa in ambiente intranet, ma comunque dovresti
abbassare drasticamente le protezioni del browser), e quindi dò per
scontato che tu legga questi dati server-side e fornisca X stringhe, ti dò
una dritta:
a) non esiste un metodo nativo per creare un array di caratteri da una
stringa, io avevo fatto questo prototype che può esserti d'aiuto:
 
http://www.criosoftware.it/default55.aspx
b) seguendo la a) puoi ottenere da una stringa un array di caratteri;
allora puoi creare il tuo array vuoto:
 var arr=new Array();
e per ogni riga (stringa) un qualcosa del tipo
 arr[arr.length]=tuastringa.toCharArray();
Non so bene cosa possa succedere assegnando a una voce di un array un altro
array ma a naso dovrebbe creare un corretto array "bidimensionale".
Qua un esempio:
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array#Example:_Creating_a_Two-dimensional_Array
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 un file di testo esempio
Prima di tutto, in Javascript non esistono array multidimensionali, ma solo
monodimensionali.
Si possono emulare gli array multidimensionali, tipo le matrici, creando
"array di array".
Seconda di poi, per fare questo genere di cose solitamente si usa tecnologia
server side. Ovvero, JS non ha la capacità nativamente di operare in tal
senso, sui file di testo. Di solito è il server che si occupa di leggere la
risorsa in questione, e tradurla in modo utile a javascript.
Una possibile soluzione, però, potrebbe essere la seguente:
function getXmlHttpRequest(){
        if (window.XMLHttpRequest){
                return new XMLHttpRequest();
        }if (window.ActiveXObject) {
                /*@cc_on
                        @if (@_win32)
                                return new
ActiveXObject("Microsoft.XMLHTTP");
                        @end
                @*/
                return null;
        }else{
                return null;
        }
}
function getMapArray(){
	var http = getXmlHttpRequest(),
		map = [];
 
	if (http==null) return null;
	http.open("GET","mappa.txt",false);
	http.setRequestHeader("If-Modified-Since", "Sat, 11 Jan 1977 00:00:00
GMT");
	http.send(null);
 
	if ( http.readyState==4 && http.status==200 ){
		map = http.responseText.split(/\r\n|\n/);
		for (var i=0;i<map.length;i++)
			map[i]=map[i].split("");
	}
 
	return map;
 
}
var mymap = getMapArray();
if (mymap)
	alert(mymap[1][0])
Scritta al volo, ma dovrebbe andare.
Spendo due parole generali sul codice:
Lo script fa uso dell'oggetto XmlHttpRequest, che è supportato dai browser
odierni ma potresti avere problemi su quelli più vecchiotti.
Se tu potessi utilizzare un linguaggio server side (ASP, PHP, JSP, cgi in
generis), sarebbe di gran lunga preferibile piuttosto che scomodare il
suddetto oggetto client.
In pratica richiede il file "mappa.txt" al server, e poi lo "splitta" per
ottenere un'array di array. Le dimensioni sono date dal numero di righe e
dal numero di caratteri per riga.
Se dovessi aver bisogno di ulteriori chiarimenti fai un fischio, spero non
vi siano strafalcioni particolari (tipo quello segnalato da Ugo in un post
di ieri :) )
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 Thanks!
rae


Ops!! Mi sa che hai ragione! In effetti ho avuto un po difficolta' a
capire i post precedenti, ma devo dire che siete stati davvero
gentilissimi, nn mi aspettavo una risposta cosi' tempestiva!
In effetti il progettino e' in java (stupido stupido stupido!!), ma il
codice cambia molto tra java e javascript??
Scusate se vi ho fatto perdere tempo!

 codice cambia molto tra java e javascript??
Come disse il buon Larghi, le similitudini tra java e javascript sono le
stesse che ci sono tra cane e canestro. Le prime quattro lettere del nome,
fondamentalmente. :)
it.comp.java


 fondamentalmente. :)
Simpaticissimo questo Larghi!!! E' un prof?
Io spesso quando non ho una palla lancio il mio cane sul canestro... :)

 Io spesso quando non ho una palla lancio il mio cane sul canestro... :)
:-) lo faccio anch'io col mio gatto quando torno e trovo il corridoio
"pisciato" :-)


Cristiano Larghi ha scritto:

Che palle sto java... chi mi fa il progetto per 50euro?
Lo scrivo qua perche' mi sembrate piu simpatici, e magari sapete
qualcosa anche su java!
Fatemi sapere!!!

 Che palle sto java... chi mi fa il progetto per 50euro?
Io, gratis, ti dò un consiglio: cambia corso di studi :)
-- 
Nando [?]
Apostolo della Prova