Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
.txt einlesen und in Liste schreiben
#1

Hallo zusammen! 


Ich übe etwas mit javascript. Für das kleine Programm, an dem ich arbeite, sollte eine .txt-File eingelesen werden und in einer Liste abgespeichert werden. 
Hier mein Versuch: 


Code:
class Champion {
    constructor(champName, currentStatus) {
      this.name = champName;
      this.status = currentStatus;
    }
  }

  change();

  function change(){
    var rawFile = new XMLHttpRequest();
      rawFile.open("GET", "test.txt", true);
      rawFile.onreadystatechange = function() {
        if (rawFile.readyState === 4) {
          var allText = rawFile.responseText;
          document.getElementById("test").innerHTML = allText;
          console.log(allText);
          const champArray = textfile.split('\n');

        var list = [];

        for (let i = 0; i < champArray.length; i++){
            let currentChamp = champArray[i].split(', ');
            const c = new Champion;
            c.champName = currentChamp[0];
            c.currentStatus = currentChamp[1];
            list.push(c);
            console.log(list);
            return allText;
        }
    }
      //console.log(allText);
      rawFile.send();
  }
};
Weiß jemand, wie ich das am besten mache?
Danke im Voraus!  Smile

(Die Datei ist folgendermaßen aufgebaut:
Code:
Name1, 1
Name2, 1
Name3, 0
Name4, 1
Zitieren
#2
Hi prodliluk,

wie ich sehe sieht das schon mal Interessant aus. Aber wozu die Klasse? Du benötigst nur ein Obejct dem du dann eine oder mehrere Properties vergibst. Du kannst die Objekte auch Klonen/kopieren und/oder diese verändern. Dafür benötigst du jetzt unbedingt keine Klasse.

Hier mein Codeansatz:
Code:
'use strict';
document.addEventListener('DOMContentLoaded', init);
var test, c = new Champion;
function init() {
    test = document.getElementById('test');
    let xhr = new XMLHttpRequest();
    xhr.open('POST', 'test.txt', true);
    xhr.addEventListener('readystatechange', function() {
        if(xhr.status == 200 && xhr.readyState == 4) {
            let myText = xhr.responseText;
            test.innerHTML = myText;
            console.log(myText);
            let champArray = myText.split(/\r?\n/);
            champArray.forEach((elem, index) => {
               let currentChamp = champArray[i].split(', ');
                // Hier kommt der Rest hin
            });
        }
    });
    xhr.send();
}

Ich hoffe der Codeschnipsel hilft dir weiter. Verwende lieber eine forEach-Schleife/Funktion anstatt eine for-Schleife.

Viel Erfolg und wenn du noch weitere Fragen hast, dann einfach ins Forum.

Viele Grüße

rzscout
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste