Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[js] Datein von URL laden und als Array bearbeiten
#1
Hallo Zusammen,

ich bin neu hier in diesen Forum und hoffe das ich hier an der richtigen Stelle bin.
Ich muss in einen Plug-In Berechnungen anstellen. Leider biete mir diese Plug-in nicht die Möglichkeit direkt auf interne und externe Quellen zuzugreifen. Im genauen geht es zum eine Preisliste in .csv Format.
Die Idee war, die csv von einer URL herunterzuladen und in ein Array umzuwandeln, damit ich damit rechnen kann.
Eine CSV in Array schreiben funktioniert, Suche in Array auch, allerdings klappt das mit den Download nicht so.

Mein Code:

Code:
<head> </head>
<body>
  <form id="myForm">
    <input type="file" id="csvFile" accept=".csv" />
    <br />
    <input type="submit" value="Submit" />
  </form>
  <script>
    const myForm = document.getElementById("myForm");
    const csvFile = document.getElementById("csvFile");

function stringToArray(csvDatei) {
    var allTextLines = csvDatei.split(/\r\n|\n/);
    var headers = allTextLines[0].split(';');
    var lines = [];

    for (var i=1; i<allTextLines.length; i++) {
        var data = allTextLines[i].split(';');
        if (data.length == headers.length) {

            var tarr = [];
            for (var j=0; j<headers.length; j++) {
                tarr.push(data[j]);
            }
            lines.push(tarr);
        }
    }
    return(lines);
}

function getIndexOf(a,v) {
  var l = a.length;
  for (var k=0;k<l;k++) {
    if (a[k][0]==v) {
        return k;
      }
  }                     
  return false;
}

function downloadFile(urlData) {
    var aLink = document.createElement("a");
    aLink.href = urlData;
    document.body.appendChild(aLink);
    aLink.click();
    window.URL.revokeObjectURL(urlData);
    aLink.remove();
}

    myForm.addEventListener("submit", function (e) {
      e.preventDefault();
      const input = csvFile.files[0];
      const reader = new FileReader();
      reader.onload = function (e) {
        const text = e.target.result;
        //const text2 = downloadFile('URL');
        const data = stringToArray(text);
    
        var index;
        index = getIndexOf(data,"101400");
        document.writeln(index+"<br>");        
        document.writeln(data[index][0]);
        document.writeln(data[index][1]);
        document.writeln(data[index][2]);
      };
     
      reader.readAsText(input);
    });
  </script>
</body>

Ich habe die Zeile mit den Download Abruf deaktiviert. Unter Edge lud er zwar die Datei an der URL herunter, aber danach brach das Programm ab und arbeitet nicht weiter. Unter Firevox startete er garnicht.
Vielleicht hat einer eine Idee oder einen Gedankenanstoß, wie ich:
- eine csv von einer URL in ein Object umwandeln kann, oder oder.

Der Code ist nur in einen HTML eingebettet, damit ich es testen konnt und Rückmeldungen über die Console bekam.
Wie gesagt, es soll in einen Plug-in, wo ich leider keinerlei Rückmeldungen bekomme, nur noch einen Wert am Ende der Berechnung.

MfG

Sebastian
Zitieren


Nachrichten in diesem Thema
[js] Datein von URL laden und als Array bearbeiten - von Mitron - 14.10.2021, 14:32

Gehe zu:


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