PDA

Volledige versie bekijken : loadvars


tomato
%Europe/Berlin %642 %2010, 16:24
Op mijn site geef ik verslagen weer die via loadvars uit een txt bestand gehaald worden. Elk verslag is een txt bestand.

Men swf werkt perfect zoals het moet als ik het lokaal uitvoer maar wanneer ik het upload werkt het ineens niet meer.

Waar de ingeladen tekst moet komen komt nu undefined te staan. Hij kan de tekstbestanden wel vinden want hij geeft wel het juiste aantal verslagen weer.

/**
* Maakt nieuwe variabelen aan. Maar enkel de eerste keer dat de code doorlopen wordt.
**/
if (verslagen == undefined) {
var verslagen = new LoadVars();
var datum:Date;
var lijst:Array = new Array();
var indexVerslag;
var loaded:Boolean = false;
}
/*
Eenvoudige trim functie.
*/
function trim(str:String):String {
for (var i = 0; str.charCodeAt(i)<33; i++) {
}

for (var j = str.length-1; str.charCodeAt(j)<33; j--) {
}

return str.substring(i, j+1);
}
/*
Stelt de lijst van verslagen op.
*/

function initiateKnop() {
var plusy:Number = 0;
var j = 0;
for (var i:Number = 0; i<lijst.length; i++) {
if (i == 0 || _root.lijst[i-1].datum.getYear()>_root.lijst[i].datum.getYear()) {
if (j != 0) {
duplicateMovieClip(_root.kalender_mc.kadertekst_mc .jaar0_mc, "jaar"+j+"_mc", i+j);
}
_root.kalender_mc.kadertekst_mc["jaar"+j+"_mc"].jaar_txt.text = _root.lijst[i].datum.getFullYear();
_root.kalender_mc.kadertekst_mc["jaar"+j+"_mc"]._y = _root.kalender_mc.kadertekst_mc.jaar0_mc._y+plusy;
j++;
plusy += _root.kalender_mc.kadertekst_mc.jaar0_mc._height;
}
if (i != 0) {
duplicateMovieClip(_root.kalender_mc.kadertekst_mc .verslag0_btn, "verslag"+i+"_btn", i+j);
}
_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"]._y = _root.kalender_mc.kadertekst_mc.jaar0_mc._y+plusy;
_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"].datum_txt.text = datumString(_root.lijst[i].datum);
_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"].optreden_txt.text = lijst[i].optreden;
_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"].plaats_txt.text = lijst[i].plaats;
plusy += _root.kalender_mc.kadertekst_mc.verslag0_btn._heig ht;
}
}
/*
Retourneert de datum in stringvorm.
*/

function datumString(datum:Date):String {
var jaar = (datum.getYear()-100);
if (jaar<10) {
jaar = "0"+jaar;
}
var maand = (datum.getMonth()+1);
if (maand<10) {
maand = "0"+maand;
}
var dag = datum.getDate();
if (dag<10) {
dag = "0"+dag;
}
return dag+"/"+maand+"/"+jaar;
}

/*
Bewerkt de ingeladen variabelen.
*/
function bewerk() {
verslagen.jaar = parseInt(verslagen.jaar);
verslagen.maand = parseInt(verslagen.maand)-1;
verslagen.dag = parseInt(verslagen.dag);
datum = new Date(verslagen.jaar, verslagen.maand, verslagen.dag);
verslagen.verslag = Boolean(parseInt(verslagen.verslag));
verslagen.album = Boolean(parseInt(verslagen.album));
verslagen.video = Boolean(parseInt(verslagen.video));
verslagen.optreden = trim(verslagen.optreden);
verslagen.plaats = trim(verslagen.plaats);
verslagen.foto = trim(verslagen.foto);
verslagen.tekst = trim(verslagen.tekst);

}

/*
Laadt de tekstbestanden in en stopt ze in een array.
De tekstbestanden moeten van de vorm a.txt zijn met a opeenvolgende nummers.
*/
function loadVerslag(a:Number) {
var vers:String = "verslagen/"+a+".txt";
verslagen.load(vers);
verslagen.onLoad = function(succes) {
if (succes) {
bewerk();
lijst.push({datum:datum, verslag:verslagen.verslag, album:verslagen.album, video:verslagen.video, foto:verslagen.foto, optreden:verslagen.optreden, plaats:verslagen.plaats, tekst:verslagen.tekst});
loadVerslag(a+1);
} else {
lijst.sortOn(datum);
lijst.reverse();
loaded=true;
}
};
}
/*
Laadt de variabelen alleen in als de array met tekstbestanden nog leeg is.
*/
if (lijst.length == 0) {
loadVerslag(1);
}
De functie initiateKnop geeft de verslagen weer.

Iemand een idee waar de fout zit?

jaspermuts
%Europe/Berlin %999 %2010, 00:59
Deze regel reoept de functie datumString() aan:

_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"].datum_txt.text = datumString(_root.lijst[i].datum);

Kun je deze functie ook aan ons tonen?
Om te zien of dat de oorzaak is, kun je checken of dit bijvoorbeeld wel het jaartal in de textbox zet.

_root.kalender_mc.kadertekst_mc["verslag"+(i)+"_btn"].datum_txt.text = _root.lijst[i].datum.getFullYear();


PS: haakjes om een variabele (en verder niets) zetten doet helemaal niets.

tomato
%Europe/Berlin %429 %2010, 11:18
De functie datumString staat iets verderop in de code.

Het rare is dus dat de code wel werkt maar eenmaal online niet meer. Ik denk dus niet dat de fout echt in de code gaat zitten.

Heb het bestand er bij gevoegd. Op u computer werkt het normaal zoals het moet maar 1maal online niet meer.

tomato
%Europe/Berlin %970 %2010, 00:18
Ik heb het probleem gevonden denk ik. Al de documenten worden opgeslagen als unicode in plaats van ainsi!!!

Dit deed ik aangezien de tekstbestanden in unicode alle karakters zoals é en " tegoei weergaven. ainsi niet. Zelfs niet met embedden. Hoe kan ik deze karakters tegoei laten weergeven?

jaspermuts
%Europe/Berlin %356 %2010, 09:33
Ah :D

tegoei (http://www.vlaamswoordenboek.be/definities/term/tegoei) (bw.)


1. voldoende goed, goed genoeg, zoals het hoort; 2. zoals het was, in de oorspronkelijke staat; 3. (in combinatie met “(nog) niet”) nauwelijks
1. Ge moet uw handen tegoei wassen voor het eten.
Just tegoei! (of) Krek tegoei! (net goed! het zal hem/haar leren)
2. Dat komt nooit meer tegoei tussen die twee.
Ik weet niet of ik die kapotte broodrooster nog ooit tegoei krijg.
3. Zij zat nog niet tegoei neer of zij voelde zich weer misselijk worden.


Dit forum is Nederlands/Vlaams, dus het is denk ik handiger als er niet te regionale termen worden gebruikt ;)
('tegoei' intypen op de google.nl gaf me al direct als 1e resultaat het Vlaams woordenboek)
Ik heb niet getest (niet in de gelegenheid je rars te openen), maar misschien kun je de speciale karakters escapen via escape()?

tomato
%Europe/Berlin %493 %2010, 12:50
Tegoei = juist :)

Probleem opgelost door op te slaan als utf-8. Weer meer dan 50 bestanden heropslagen:s als iemand een automatische manier heeft om bestanden te converteren tussen utf-8, unicode en ainsi is dat zeer welkom voor de volgende keer:p

Nu heb ik in een ander bestand een probleem. Ik splits hier een variabele op een "enter" in twee door middel van split(chr(13)+chr(10)). Op mijn pc werkt dit natuurlijk weer maar online niet meer. Iemand een idee?

Is er een mogelijkheid om iets te tracen in een webbrowser: zou het al iets gemakkelijker maken om fout te vinden.


update:
Heb het op volgende mannier opgelost.

LV2.stukken = escape(LV2.stukken);
var char;
if(LV2.stukken.indexOf("%0D%0A") != -1){
char = "%0D%0A";
}else{
char = "%0A";
}
array = LV2.stukken.split(char);
LV2.stukken = array.join("-");
LV2.stukken = unescape(LV2.stukken);
array = LV2.stukken.split("-");

op mijn pc split hij dan op "%0D%0A" in online op "%0A". Ik snap wel niet waarom hij online niet op "/n" wil splitsen. Dan moest ik niet alles escapen en unescapen.