Wie kann ich eine Textzeile oder Passage aus einer txt Datei lesen mit Javascript?
Hallo,
wie kann ich aus einer (Text)datei eine oder mehrere Zeilen auslesen ?
Bsp. Ich erstelle eine Textdatei mit verschiedenen Sätzen. Jedesmal wenn ich auf einen bestimmten Button auf meiner Homepage klicke, möchte ich das ein anderer Satz aus der Textdatei in einem div oder p tag angezeigt wird.
Ps.: der Text muss nicht unbedingt in einer dat.txt gespeichert werden.
Mfg
2 Antworten
Naja der klassische Weg wäre es den Inhalt der Datei über AJAX zu laden. AJAX macht mit Vanilla JS wenig Spaß, aber es gibt ja fertige. Beispiele dafür.
Dann speicherst du die einzelnen Sätze in einem Array. Beim Klick auf den Button wählst du dann zufällig ein Item des Arrays aus und speicherst den Text halt in den div.
Beispielcode für die einzelnen Schritte sollte sich via Google finden lassen. (Bin grad am Handy und habe hier keine Beispiele parat.)
Du könntest auch einfach einen einzelnen großen Text Block in den Javascript Code pflanzen und dann mit JavaScript die einzelnen Sätze daraus extrahieren.
So etwas wie: sentences.split("\n")
Ich denke so kommen wir der Sache schon näher :D. So ungefähr hab ich gehofft dass es funktioniert. Ich hab einen großen Textblock den ich mittels zeichen oder Absätze in verschiedene Teile zerlegen kann und diesse somit abrufbar sind.
..habs mir gerade angeschaut.. damit kann ich auf jeden Fall arbeiten. Vielen Dank, somit ist das Problem gelöst. DANKE !
Du könntest deinen Inhalt in einer Variable speichern, die du dann ausliest. Du könntest den Inhalt dann auch gleich in einer Liste speichern.
Du kannst deine extra Text Variable auch in einer zweiten Datei abspeichern. Du musst deine zweite JS Datei dann als erstes im HTML Dokument einbinden. Wichtig!
Datei 1: text.js
const textList = [
"Satz 1",
"Satz 2"
]
Datei 2: main.js
console.log(textList[0])
Datei 3: index.html
...
<script type="text/javascript" src="text.js"></script>
<script type="text/javascript" src="main.js"></script>
...
Bei dieser Umsetzung hast du weiterhin deine Texte in einer eigenen Datei, musst dich aber nicht mit dem Lesen der Datei beschäftigen. Das Laden der Datei übernimmt der Browser für dich.
Danke für den Tip, so funktioniert es.. aber ich müsste jeden Satz einzeln einfügen. Bei über 100 stk macht das keinen Spass =). Die eigene Datei ist kein muss, der Schwerpunkt liegt bei der Anzahl an Textzeilen oder Abschnitte/ Sätze die sich per click auf einen bestimmten Button ändern. .. Trotzdem vielen Dank =)
Du könntest deine Antworten auch in einem sehr langen String speichern und dann die mit dem Zeilenumbruch trennen.
Es gibt Multiline Strings, wo du einfach dein Block an Text einfügen kannst.
Wenn es nur ums einmalige Formatieren mit "nur" 100 Sätzen geht, geht das Hinzufügen mit einem der " und , mit einem passenden Texteditor sehr leicht.
Zum Beispiel könntest du durch Suchen und Erssetzen den Zeilenumbruch suchen und durch "," ersetzen. Dann musst du ganz zu Beginn und am Ende noch die " setzen und es in der Variable speichern lassen.
Mit der automatischen Textformatierung kommen die Zeilenumbrüche zurück und die Datei sieht wieder schön aus.
..ich hab vergessen zu erwähnen, dass ich blutiger Anfänger bin und all das nur zum Spass und aus reinem Interesse mache. Mit AJAX hab ich gar keine Erfahrung. Das ganze in Arrays zu packen hab ich mir auch schon überlegt, dass könnte ich ja im script selbst umsetzen.. Jedoch, wenn es viele Sätze werden, wäre dass dann zu umständlich.
Anleitungen gibts zu viele, daher stellte ich die Frage hier. Es ist noch etwas schwer am Anfang zu unterscheiden welches tut gut gecoded ist und welches nicht. Bevor ich mir dann eine schlampige Schreibweise aneigne, frage ich lieber nochmal nach. Trotzdem vielen Dank =)