 |
|

|
 |
 |

Livre de (petites) recettes
|
 |
 |
 |
 |
  | Web / HTTP var w = new Stream('http://www.jsdb.org/'); Ouvre un nouveau flux HTTP, envoie la requête GET en utilisant un proxy si nécessaire writeln(w.readLine());var r = new Record; Affiche la réponse HTTP.Déclare un objet de stockage pour l’en-tête w.readMIME(r); Lit l’en-tête MIME et la stocke dans r writeln('Header\n',r.toString(),'\n'); Montre l’intégralité de l’en-tête HTTP var data = w.readFile(); Place toute la page Web dans une chaîne writeln('Page\n',data); Affiche la page Web w.close(); Ferme la connexion réseau
|
 |
 |
 |
 |
 |
  | Email var m = new Mail('SMTP','username', 'password','pop-server', 'smtp-server','utf-8', 'me@email.com'); Nouvelle interface Mail, effectue l’authentification MD5, le pilote POP3/SMTP analyse les messages de type multipart. Consultez la documentation de la classe pour plus de détails. m.send('me@email.com','subject','Hi there!'); Envoie un nouveau message var inbox = m.get(); Lit le courrier arrivé. Mail.get() renvoie un objet Table. if (inbox.count) { Si un message est disponible... writeln('mail from ',inbox.get(1,'Sender')); Emetteur ? writeln(inbox.getMessage(1)); writeln(inbox.getHTML(1)); Contenu du message ; Contenu HTML pour les messages multipart. }m.close() Ferme les connexions aux serveurs.
|
 |
 |
 |
 |
 |
  | Base de données Table.create("myfile.dbf","NAME 30, SEQUENCE 10"); Crée un nouveau fichier xBase avec deux colonnes var myTable = new Table("myfile.dbf"); Ouvre le fichier en lecture-écriture for each(var n in ["Alice","Bob","Cynthia"]) myTable.add(new Record("NAME=" + n)); Ajoute quelques enregistrements for (var i = 1; i <= myTable.count; i++) { writeln(i, ": ", myTable.get(i, 'NAME')); La numérotation des enregistrements d’un objet Table commence à 1. Table.get(rang,colonne) renvoie le contenu de la colonne de l’enregistrement de rang spécifié. La colonne est désignée par son nom ou son indice (à partir de 1). myTable.set(i,'SEQUENCE',i-1); Table.set(rang,colonne,valeur) modifie immédiatement le fichier de données en affectant le valeur indiquée à la colonne de l’enregistrement de rang spécifié. }
Lit une table SQL construit un index et recherche une valeur var db = new ODBC("DSN=driver;UID=login;PWD=password;"); var result = db.query("select * from mytable"); result est un objet Table contenant le résultat (de la requête). var searcher = new Index; Index est une classe générique dédiée aux recherches au sein de chaînes binaires. for (var i=1; i <= result.count; i++) searcher.add(result.get('NAME')); Ajoute les données à l’index. var i = searcher.find('Mr. Smith');var r = result.getRow(i + 1); Cherche un enregistrement spécifique. Les valeurs d’indice commencent à 0 d’où l’ajout de 1 [ndlr : pour mémoire la numérotation des enregistrements d’un objet Table débute à 1]. Table.getRow(rang) retourne un objet Record [ndlr : contenant les données de l’enregistrement de rang spécifié]. writeln('Data for Mr. Smith');writeln(r.toString()); Affiche le résultat à l’écran. db.close(). Libère les ressources ODBC. La fermeture de db libère également result.
Même chose en beaucoup plus rapide ... var result = new Table("odbc://login:password@driver/mytable"); Ouvre une connexion ODBC et récupère le contenu de la table. Les connexions ODBC sont mises en cache et réutilisée. var searcher = result.index('NAME'); Table.index(colonne) retourne un objet Index dont le premier indice est 1. var r = result.getRow(searcher.find('Mr. Smith')); Table.getRow(rang) retourne un objet Record. writeln('Data for Mr. Smith'); writeln(r.toString()); Affiche le résultat à l’écran. resut.close(); Ferme la connexion (et libère les ressources ODBC).
|
 |
 |
 |
 |
 |
  | Texte var source = new Stream("myfile.txt"); Ouvre un fichier texte en lecture seule var count = new Object; count sauvegarde les résultats [ndlr : var count={}] while (!source.eof) { Répète jusqu’à ce que la fin du fichier soit atteinte var line = source.readLine('\n'); Lit une ligne de texte à partir du fichier (en utilisant le retour-chariot comme séparateur) words = line.split(/\W/g); Découpe le ligne en un tableau de mots (g pour global) for (var i in words) { Pour chaque mot de la ligne... if (words[i] == '') continue; Ignore les mots vides [ndlr : sans caractère] if (count[words[i]]) Est-ce un mot déjà rencontré ? count[words[i]]++; Oui : Incrémente le compteur else count[words[i]] = 1; Non : Crée un nouveau compteur (initialisé à 1) } } Fin de la lecture du fichier de données for (var i in count) Pour chaque mot stocké dans l’objet count writeln(i,': ',count[i]); Ecrit le mot et son nombre d’occurrences
|
 |
 |
|


 |
 |
 |