Hallo Leute
Ich lade mir eine csv mittels AJAX in ein Array.
Das Array möchte ich dann mittels ActiveX abspeichern. Funktioniert auch alles, bis auf den Zeilenumbruch beim speichern.
Wenn ich ein existierendes Array speichere funktioniert es wie es soll.
nur bei einem Array, welches ich aus einer Datei gefüllt habe funktioniert es nicht. Da hab ich immer zwei zeilenumbruche drinne.
Hier ist der Code mit dem ich die Werte aus der Datei in das Array speichere
function laden()
{
var dateiname = document.formular.datei.value;
if (window.XMLHttpRequest) { //Morzilla, Opera ...
http = new XMLHttpRequest();
}
else if (window.ActiveXObject) { //Internet Explorer
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
http.open("GET", dateiname, true);
http.onreadystatechange = array;
http.send(null);
}
}
//Dateiinahlt wird in ein Array abgespeichert
function array() {
var dateiinhalt = new Array();
if (http.readyState == 4) {
var buffer = http.responseText;
var columnarray = buffer.split("\n");
var arrName = document.formular.selection.value;
if(isNaN(columnarray[0]))
columnarray.splice(0,1);
for (var i = 0; i < columnarray.length; i++) {
dateiinhalt[i]= new Array();
rowarray = columnarray[i].split(";");
for (var y = 0; y < rowarray.length; y++) {
dateiinhalt[i][y]=rowarray[y];
}
}
//Array entsprechend der Auswahl füllen
switch(arrName){
case "lager":
for(var x = 0; x<dateiinhalt.length-1; x++){
parent.frames.lager[x]=dateiinhalt[x];
}
break;
default:
alert("Beim füllen des Arrays ist ein Fehler aufgetreten.");
break;
}
}
}
Alles anzeigen
Und so sieh das Array aus wenn lager mit alert ausgebe
1,Eingangslager,Eingangslager,8,0.25,-12.7,3.14,5.5,0.3,-12,8,3.14
,2,Ausgangslager,Ausgangslager,-3.5,0.25,12.7,0,-2,0.3,12.8,0
Gebe ich das Array lager aus, ohne das eine Datei eingelesen wurde, stehn die Einträge in einer Zeile.
Wie bekomme ich das beim einlesen hin das die Einträge ohne Zeilenumbruch abgespeichert werden.
Meine Funktion zum speichern sieht folgender massen aus
//Funktion zum speichern der JavaScript-Datein (JavaScript-Array speichern)
function speichern_JS(){
var fso=new ActiveXObject("scripting.filesystemobject");
var trenner=",";
//Var zum Umspeichern des Arrays
var arrayinhalt = new Array();
//Datei öffen zum Schreiben (2 == ForWriting,)
var datei=fso.OpenTextFile(file_JS,2,true);
var line ="var " + arrayname + " = new Array (";
//Arrayinhalt, des Ausgewählten Array in Hilfsarray kopieren
switch(arrayname){
case "lager":
for(var x = 0; x<parent.frames.lager.length; x++){
// arrayinhalt.length=0;
arrayinhalt[x]=parent.frames.lager[x];
}
break;
}
//Arrayinhalt in Variable kopieren
for(var n=0;n<arrayinhalt.length;n++){
if (arrayinhalt[n][0] != ""){
line+="[\"" + arrayinhalt[n][0];
for(var m = 1; m < arrayinhalt[n].length; m++) {
line+="\"" + trenner + "\""+ arrayinhalt[n][m];
}
if (n<(arrayinhalt.length-1)){
// line=line + "\"],\r\n"; //hier wird vor und nach ] ein Zeilenumbruch eingefügt
line+="\"],"; //hier wird vor der ] ein Zeilenumbruch eingefügt
}
else{
// line+="\"]\r\n"; //hier wird vor und nach ] ein Zeilenumbruch eingefügt
line+="\"]"; //hier wird vor der ] ein Zeilenumbruch eingefügt
}
}
}
line+=");";
alert("line " + line);
datei.WriteLine(line);
datei.close();
}
Alles anzeigen
Hätte gerne das nur nach der Eckigen-Klammer ein Zeilenumbruch eingefügt wird.
Denke das ich beim einlesen der Datei ändern müsste. aber wie ist mir unkalr.
Hoffe ihr konnt mir helfen
Jessica