Avatar billede vardox Nybegynder
20. oktober 2005 - 02:05 Der er 9 kommentarer og
1 løsning

file_exists funktion

Er der en der sidder med en ide til, hvordan man kan lave en funktion i MX 2004, som kan tjekke om en fil eksisterer? Jeg sidder og savner min herlige php funktion file_exists.

Det er til en lokal applikation, og det er i første omgang xml-filer den skal kigge efter.

Patrick
Avatar billede thulstrup Nybegynder
20. oktober 2005 - 09:00 #1
Til xml-filer kan du bruge:

var myXml:XML = new XML();
myXml.onLoad = function(success:Boolean):Void  {
    if (success) {
        trace("filen blev fundet");
    } else {
        trace("filen blev IKKE fundet");
    }
};
myXml.load("test.xml");
Avatar billede barklund Nybegynder
20. oktober 2005 - 09:26 #2
success vil nu også være false, hvis XML'en ikke er gyldig XML. Men hvis den er false, kan du kigge på status-egenskaben og se, hvad fejlen har været. :)
Avatar billede thulstrup Nybegynder
20. oktober 2005 - 10:00 #3
Hvis filerne der skal loades ligger på en server, kan du bruge den nye onHTTPStatus handler:

var codes:Array = new Array();
codes.push("100 - Continue");
codes.push("101 - Switching Protocols");
codes.push("200 - OK");
codes.push("201 - Created");
codes.push("202 - Accepted");
codes.push("203 - Non-Authoritative Information");
codes.push("204 - No Content");
codes.push("205 - Reset Content");
codes.push("206 - Partial Content");
codes.push("300 - Multiple Choices");
codes.push("301 - Moved Permanently");
codes.push("302 - Found");
codes.push("303 - See Other");
codes.push("304 - Not Modified");
codes.push("305 - Use Proxy");
codes.push("306 - No Longer Used");
codes.push("307 - Temporary Redirect");
codes.push("400 - Bad Request");
codes.push("401 - Not Authorised");
codes.push("402 - Payment Required");
codes.push("403 - Forbidden");
codes.push("404 - Not Found");
codes.push("405 - Method Not Allowed");
codes.push("406 - Not Acceptable");
codes.push("407 - Proxy Authentication Required");
codes.push("408 - Request Timeout");
codes.push("409 - Conflict");
codes.push("410 - Gone");
codes.push("411 - Length Required");
codes.push("412 - Precondition Failed");
codes.push("413 - Request Entity Too Large");
codes.push("414 - Request URI Too Long");
codes.push("415 - Unsupported Media Type");
codes.push("416 - Requested Range Not Satisfiable");
codes.push("417 - Expectation Failed");
codes.push("500 - Internal Server Error");
codes.push("501 - Not Implemented");
codes.push("502 - Bad Gateway");
codes.push("503 - Service Unavailable");
codes.push("504 - Gateway Timeout");
codes.push("505 - HTTP Version Not Supported");
//
var myXml:XML = new XML();
myXml.onHTTPStatus = function(httpStatus:Number) {
    for (var i = 0; i<codes.length; i++) {
        var error:String = httpStatus.toString();
        if (codes[i].indexOf(error)>-1) {
            trace(codes[i]);
        }
    }
};
// retunerer: 200 - OK
// myXml.load("http://eksperten.dk/feed/Programmer_Flash_Generelt.rss");

// retunerer: 404 - Not Found
myXml.load("http://eksperten.dk/feed/Findes_Ikke.rss");
Avatar billede vardox Nybegynder
20. oktober 2005 - 12:26 #4
Thulstrup > dit første bud har jeg nu også selv lavet, men jeg ved ikke hvordan jeg skal få min funktion til at returnere en boolean. Du skal huske på at det er en file_exists funktion, som indeholder xml-loaderen, og alle de ting jeg har prøvet, har udelukkende returneret ingenting.

Jeg smider lige min kode på om en times tid, står lige og er på vej ud af døren...
Avatar billede barklund Nybegynder
20. oktober 2005 - 12:28 #5
Du kan _ikke_ lave en funktion, der finder ud af om filen findes og returnerer true eller false. Du kan kun lave en funktion, der finder ud af om filen findes, og når den har fundet ud af det, så kalder den en anden funktion med denne boolean - altså en klassisk callback-baseret struktur.
Avatar billede vardox Nybegynder
20. oktober 2005 - 13:23 #6
Hvorfor tænkte jeg ikke på det :o)

Jeg vil mene at barklund kom med svaret, sååå smid et svar og modtag bifaldet :o)

Tak for hjælpen til jer begge

Patrick
Avatar billede barklund Nybegynder
20. oktober 2005 - 13:30 #7
Well, thulstrups kommentarer er jo sådan set også rigtige :)
Avatar billede thulstrup Nybegynder
20. oktober 2005 - 13:32 #8
Det er ok med mig :o)
Avatar billede vardox Nybegynder
20. oktober 2005 - 13:41 #9
Jeg siger nu heller ikke at Thulstrups kommentarer er forkerte, men jeg synes ikke at de indeholder løsningen, men hvis du føler dig trådt på Thulstrup, så må vi jo lige finde ud af det :o)

Patrick
Avatar billede barklund Nybegynder
20. oktober 2005 - 14:18 #10
Mwell, tark for points anyways :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester