|
Dernière réponse | |||
---|---|---|---|
Sujet : [javascript] chargement d'un fichier texte ? | |||
John74 |
[edit]--Message édité par John74--[/edit] |
Aperçu |
---|
Vue Rapide de la discussion |
---|
John74 |
[edit]--Message édité par John74--[/edit] |
rufo | Je sais pas si ça a été déjà proposé, mais, tu pourais pas afficher ton fichier dans une page html, via la méthode document, lire son contenu?
Sinon, y'a VisualJ++ de MS pour faire du java et Delphi pro permet de gérer le html et le ftp....Mais là, j'y connais rien ( je fais pas de réseau)... |
Roswell_ | si tu veux je peux héberger un php chez moi qui genere un javascript que tu inclus dans ton html dit moi exactement ce que tu veux extraire et quelles variable tu veux générer en javascript. |
John74 | ouais, ben apparemment d'apres les exemples que j'ai essayé il supporte ni PHP ni ASP !
je l'ai dans l'os comme on dit ! ;) tant pis, merci à tous pour les infos et conseils A+ |
JWhy | ton hebergeur doit supporter PHP car le fichier est traite par le serveur qui genere ensuite du beau HTML lisible par ton browser. |
John74 | ok pour le php, je suis ouvert à toute solution !
en plus j'ai trouvé exactement ce que je cherche en php : extrait : " ..récupérer une chaîne METAR consiste à appeler un serveur par l'URL suivante : $file = @file("http://weather.noaa.gov/pub/data/" . "observations/metar/stations/$station.TXT" ); Exemple de METAR pour Paris, l'identificateur est 'LFPG' " en fait tout ce que j'ai besoin ce serait d'une routine qui récupère ce fameux fichier texte et le sauvegarde sur mon site. Après je peux le reprendre avec java facilement ! le problème c'est la syntaxe de ce langage php et son fonctionnement, plutôt étrange ! j'ai essayé le programme traditionnel, le fameux "hello world", et bien j'ai même pas été fichu d'arriver à le lancer ! je l'ai recopié ci-dessous, y a-t-il une erreur quelque part ? j'ai mis ça dans un fichier hello.php3 que j'ai recopié sur mon site, puis je l'ai lancé en l'appelant par son nom tout simplement ! c'est bien comme ça qu'il faut opérer ? voici le code recopié texto, résultat = belle page blanche... (mon premier flop avec un programme 'hello world' :) ) <html> <head> <title> <? $pagetitle= "Mon premier script PHP3"; echo $pagetitle; ?> </title> </head> <body> <h1><? echo $pagetitle ?></h1> <? echo " <b> Hello, World ! </b>"; ?> </html> |
Roswell_ | C'est parce que les applet sont tres sécurisées et donc tres restricives. Les applications par contres elles tirent partie de toutes les possibilités qu'offre l'API java.
Mais bon ,imagine un site qui fasse charger une applet qui envoie continuellement des données a un serveur pour le mettre HS, le site en question ne pourra difficilement trouvé d'ou vient l'attaque puisque c'est chaque client qui enverrait ces données depuis leur ordi. Par contre en php tout ce fait depuis ton serveur donc on peut te retrouver, c'est une raison pour laquelle les applet sont tellement restrictive. Si c'est pas trop compliquer je pourrais te faire le script php. [edit]--Message édité par Roswell_--[/edit] |
John74 |
|
nabab | Dans le cas ou tu utiliserais exclusivement IE>5 tu peux te servir de l'objet HTTPRequest et ainsi charger ton fichier text dans un objet. |
Roswell_ | Si tu as le message probleme... c'est justement parce que tu ne peux pas te connecter a un autre serveur que celui d'ou elle est downloader (ton site quoi) avec une applet (non-signée).
Si tu veux tester essai de remplacer l'url par une url d'un fichier texte de ton serveur. Pour voir une applet tu peux faire appletviewer nom_du_ficher_html avec une console DOS mais c'est la machine virtuelle de Sun qui est utiliser et celle d'IE est beaucoup moins bien. donc il faut quand même tester sous IE. |
John74 | re salut,
je vient d'avoir confirmation qu'avec java on peut aller chercher un fichier texte sur le net sans probleme, voici la source d'un applet qui fait cette action justement (ci-dessous) mais pas de bol à la compilation j'ai un warning : "HelloFromNet.java uses or overrides a deprecated API." !?!? qqun a-t-il une idée de ce que ça raconte ??? et à l'exécution j'obtient systématiquement le message "probleme..." un dernier coup de main serait sympa, j'ai installé java depuis 24 heures et j'y connais encore rien ! c'est sûrement pas grand chose qui coince !! et aussi un autre truc bizarre : chaque fois qu'une ligne du genre System.out.println(txt) est utilisée (pour afficher une ligne de texte) y a rien qui s'affiche nulle part ! où donc est affiché le texte ??? au fait je compile depuis une fenetre DOS (javac nomfichier.java) puis lance le nomfichier.class depuis un fichier html depuis l'explorer est-ce que c la méthode que vous utilisez ?? ça me parait vachement lourd !!! existe-t-il des environnement complets genre Delphi pour Java ? ... voici donc la source java qui ne fonctionne pas, puis le contenu du fichier html que j'utilise pour lancer l'applet. j'ai trouvé cet exemple sur http://www.eteks.com/ dans le chapitre bibliotheque/gestion des fichiers/connexions (URLconnection) je le recopie ci-dessous texto ------------------------------------------------ Voici un exemple simple d'applet qui lit le texte contenu dans le fichier accessible à l'URL http://www.eteks.com/classes/hello.txt pour l'afficher à l'écran : et le programme Java correspondant (à copier dans un fichier dénommé HelloFromNet.java et invoqué à partir d'un fichier HTML) : import java.applet.Applet; import java.awt.Graphics; import java.net.*; import java.io.*; public class HelloFromNet extends Applet { String texteLu; // Méthode appelée par le système à l'initialisation de l'applet public void init () { try { // Création de l'URL http://www.eteks.com/classes/hello.txt URL urlFichierHello = new URL ("http", "www.eteks.com", "/classes/hello.txt" ); // Ouverture d'une connexion et récupération d'un flux d'entrée URLConnection connexion = urlFichierHello.openConnection (); InputStream fluxFichier = connexion.getInputStream (); // Lecture du contenu du flux d'entrée byte contenuFichier [ ] = new byte [connexion.getContentLength ()]; int octetsLus = fluxFichier.read (contenuFichier); texteLu = new String (contenuFichier, 0, 0, octetsLus); // Fermeture de la connexion fluxFichier.close (); } catch (Exception e) { texteLu = "Probleme..."; } } // Méthode appelée par le système pour mettre à jour le dessin de l'applet public void paint (Graphics gc) { if (texteLu != null) // Affichage du texte lu gc.drawString(texteLu, 10, 20); } } ----------------------------------------------------------------- et voilà ce que j'ai mis dans le fichier html ( c p-e là le pb ?) --- <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE> Test HelloFromNet </TITLE> </HEAD> <BODY> <APPLET CODEBASE = "." CODE = "HelloFromNet.class" NAME = "Applet HelloFromNet" WIDTH = 450 HEIGHT = 300 HSPACE = 0 VSPACE = 0 ALIGN = middle > </APPLET> </BODY> </HTML> |
Roswell_ | Par contre je crois qu'avec une applet signée on peut, mais je sais pas du tout comment ça marche cette histoire de signature..
Tu saurais pas comment ça marche toi JWhy ? |
JWhy | ah oui... c'est vrai :o :( |
Roswell_ | Il me semble qu'un applet java ne peut se connecter qu'a son propre serveur non ?
En php en tout cas c'est sur ça marchera. |
JWhy | tu ne peux pas en javascript... et tu ne peux pas non plus avec le systeme de frames car par securite, il est interdit de communiquer entre frames qui ne sont pas sur le meme domaine.
par contre tu peux recuperer le fichier via un applet java puis , dans ton javascript, appeller une fonction de ton applet qui va te renvoyer la chaine que tu veux et tu pourras donc la manipuler dans ton javascript. vu que je ne suis surement pas tres clair, ca donnerait qqchose comme ca en pseudo-pseudo-code :
[edit]--Message édité par JWhy--[/edit] |
John74 |
|
darkoli | ben je ne pense pas mais je n'en suis pas sur.
Mais est ce que tu peux modifier le fichier lflc.txt pour qu'il s'appelle lflc.js par exemple et dedans tu ecrirais : var temperature="DU"; par exemple ? si tu peux faire ca, il ne te reste plus qu'a inclure le fichier lflc.js dans un scrip javascript. autre solution : Tu crees une frame toute petite et sans scrollbar en bas de ta page, ou en haut de maniere a ce que l'utilisateur ne la voit pas (1pixels de huat par exemple). Dedans tu mets le fichier lflc.txt : src="lflc.txt". Ensuite tu viens recuperer le contenu de la frame par un javascript qui se trouve dans la page principale. => ....body.innerHTML doit contenir le code html de la page je crois ou il faut utiliser une autre methode mais il est possible de recuperer le contenu du fichier en magouillant de cette maniere. |
John74 | le but serait simplement d'extraire la température d'un relevé METAR (météo aéronautique). La température est composée de deux caractères se trouvant en position 34 et 35 de la 2ème ligne du fichier texte (avant le caractère /)
par exemple pour Clermont-Ferrand : ftp://weather.noaa.gov/data/obser [...] s/LFLC.TXT ces bulletins renouvellés toutes les heures proviennent des principaux aérodromes à travers le monde, ils sont gratuits et accessibles à tous, mon seul problème c'est de transférer ces deux lignes de textes dans des strings afin de pouvoir en extraire les données qui m'intéressent ! je sais que le javascript est bridé en écriture ce que je comprend tout à fait (sécurité) mais n'y a-t-il pas moyen de LIRE un simple fichier au format .txt ou .htm qui est de toute façon ouvert à tous ??? |
darkoli | je crois pas qu'on puisse vraiement le faire, mais tu peux magouiller avec un fichier .js externe. Ca depend de ce que tu veux faire ! |
duch | oui en utilisant un fichier .js |
John74 | salut, comment peut-on, en javascript, charger un fichier texte vers une variable de type string ou autre ?
merci |