Tekst uit een txt bestand?

Status
Niet open voor verdere reacties.

bartwebdesign

Gebruiker
Lid geworden
16 jul 2006
Berichten
443
Kan ik vanuit een txt bestand verscheidene teksten halen?

Ik wil bijv.

Als ik een stukje, waarin staat, de laatst ingelogde gebruiker, die jezelf invoert en dan haalt die website die tekst uit dat txt bestand.

Wie kent dit?
 
Je komt een aardig eind met:

<body onload="zoek()">
<iframe src="document.txt" name="tekstbestand"></iframe>


en dan iets als:

var tekst;
function zoek() {
tekst = tekstbestand.document.body.innerHTML;
tekst = tekst.replace(/(<PRE>)|(<\/PRE>)/g,'');
tekst = tekst.replace(/\&amp\;/g,'&');
tekst = tekst.replace(/\&lt\;/g,'<');
tekst = tekst.replace(/\&gt\;/g,'>');

tekst = tekst.split(/\r?\n/); // als je een array van regels wilt



Daarna kun je 'tekst' verder doorzoeken. :)


Vr.Gr. Egel.
 
Laatst bewerkt:
Zo zie je maar dat vragen die je later zelf wilt stellen soms opgelost geraken zonder dat te doen. :D

Thx. :thumb:

Greetz : Jer:cool:en.
 
Ik heb een "lithic calendar" die met een class-bestand werkt, nagemaakt in javascript met een combinatie van een eerder gemaakt script voor een jaarkalender.
Daarbij heb ik het bovenstaande gevoegd van Egel, en met wat gepruts is er een heuse kalender uitgekomen die als agenda kan gebuirkt worden.
edit:
Ik krijg er echter bij de laatste van de maand, als ik in het txt-bestand niets van activiteiten invul, geen "geen activiteiten" te zien in de agenda zelf. Hoe kan ik dat oplossen.
Het script kijkt of na de split("|") het tweede deel van de array leeg is, maar bij de laatste van de maand is dat blijkbaar niet zo, ook al zet je er niets. Kladblok zet er wel een enter of spatie in, maar die krijg ik er niet uit.
einde edit.

Dit is hem.
Klik op de eerste van de maand, of op 26 oktober.

Greetz : Jer:cool:en.
 
Laatst bewerkt:
javascript:alert(currschedule.document.body.innerHTML);
op de adresbalk + enter geeft dit:

attachment.php


Als je dit tekstbestand hebt:
0:00'00"
Een <tag> en een &.
Laatste regel.


dan lees je met .document.body.innerHTML dit uit:
<PRE>0:00'00"
Een &lt;tag&gt; en een &amp;.
Laatste regel.</PRE>


monthSchedule = monthSchedule.replace(/<\/?PRE>/g,'');
verwijdert de pre's. De &lt; &gt; en &amp; worden zo juist goed weergegeven. :)


Nog 9 dagen! ;) Grtz, Egel.
 

Bijlagen

  • currschedule.gif
    currschedule.gif
    3,9 KB · Weergaven: 195
Laatst bewerkt:
Dank je wel, Egel, voor de verdere uitleg. :thumb: Ik had het blijkbaar niet goed begrepen wat er in die zoek functie staat.

Nu enkel nog wat aanpassen in de css en we kunnen er pas echt mee uitpakken.

Greetz : Jer:cool:en.
 
Dit topic gaat toch niet over een java kalender
ik wilde een gewone tekst uit een simpel txt bestand halen.
 
Je komt een aardig eind met:

<body onload="zoek()">
<iframe src="document.txt" name="tekstbestand"></iframe>


en dan iets als:

var tekst;
function zoek() {
tekst = tekstbestand.document.body.innerHTML;
tekst = tekst.replace(/(<PRE>)|(<\/PRE>)/g,'');
tekst = tekst.replace(/\&amp\;/g,'&');
tekst = tekst.replace(/\&lt\;/g,'<');
tekst = tekst.replace(/\&gt\;/g,'>');

tekst = tekst.split(/\r?\n/); // als je een array van regels wilt



Daarna kun je 'tekst' verder doorzoeken. :)


Vr.Gr. Egel.


Ik snap het niet helemaal
 
Gelijk heb je, bartwebdesign.
Eigenlijk was mijn kalender een antwoord op een andere topic, waar deze topic een antwoord kon bieden op een gelijkaardige vraag voor die kalender (en het was zo), waarvoor mijn oprechte excuses. :o
Ook was het niet over een java kalender, maar een javascript kalender. Groot verschil. ;)

Wat bedoeld wordt met die zoek functie, is dat je eerst en vooral het tekstbestand inlaad in een iframe voordat je de functie aanroept.
Buiten de functie wordt een variabele "tekst" gedefinieerd, maar zonder er een waarde aan te geven.
Eens dat gebeurt is, roep je de functie aan die het volgende doet :

1. Die variabele "tekst" krijgt nu een waarde, gelijk aan de html die zich in het iframe bevindt.
Code:
tekst = tekstbestand.document.body.innerHTML;
2. Door dat het een tekstbestand is in het iframe, staat er, en dat wist ik ook niet, <pre> voor de html en </pre> achter de html. Deze worden verwijderd door
Code:
tekst = tekst.replace(/(<PRE>)|(\/PRE)/g,'');
3. Ook de "&amp;" "&lr;" en "&gt;" moeten vervangen worden met de volgende lijnen. (in het geval er html in het tekstbestand staat en als dat zo moet weergegeven worden als html)
Code:
tekst = tekst.replace(/\&amp\;/g,'&');
tekst = tekst.replace(/\&lt\;/g,'<');
tekst = tekst.replace(/\&gt\;/g,'>');
4. Nu kan je gaan zoeken naar een bepaalde "string", die in dit geval een stukje tekst zal zijn die je wenst te vinden.
5. Die "string" moet je zelf bepalen door middel van een tekstveld of iets dergelijks. Daarmee kan je zelf elke keer iets anders opzoeken en op de gewenste manier weergeven.
Je zou het kunnen doen door het tekstveld een onClick-event mee te geven met als waarde zoek(string) : onClick="zoek(this.value);".

Wat het volgende betreft, dat is enkel als je je tekstdocument in een "Array();" wilt opsplitsen :
Code:
tekst = tekst.split(/\r?\n/);

Greetz : Jer:cool:en.
 
Laatst bewerkt:
tekst = tekst.replace(/<\/?PRE>/g,''); werkt iets mooier. ;)
Je was één < vergeten Jeroen: .replace(/(<PRE>)|(<\/PRE)/g,'');
Wat het volgende betreft, dat is enkel als je je tekstdocument in een "Array();" wilt opsplitsen :
Code:
tekst = tekst.split(/\r?\n/);
en dat wil je waarschijnlijk als je één zin zoekt. :) Je verwerkt het dan verder met iets als
Code:
var resultaat;
for (var i = 0; i < tekst.length; i++) {
 if (/zoekterm/.test(tekst[i])) resultaat += tekst[i] + '<br>';
 };
daarna bevat resultaat de zinnen met de zoekterm.

Heb je een voorbeeld van een tekstbestand waar je wat uit wilt halen, en hoe wil je dat de webpagina het weergeeft? Dan is makkelijker te zeggen hoe het javascript eruit moet zien. :)


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan