Naviguation dans :  Perl  JavaScript  Détail  - load.cgi?Appel=histoAdmin
 présentée :  par cas d'appel   par traitements 
Retour à l'accueil
  
   
 Requêtes 

 load – Admin 

 histoAdmin 

Requêtes de Ça-déménage.com
Accès professionnel
Historique des messages
 
 
 Bibliothèque CaD 

 Fichiers 

 File 

Bibliothèque de Ça-déménage.com
Accès aux fichiers
Fonctions d'accès aux fichiers
 


 wsFile  Fonction d'accès aux fichiers
Syntaxe wsFile(x,To,nom,cas,IN)
Paramètres 
nom  type  Description 
 IN Type d'appel
= "check" : vérifier la validité des paramètres
= "size" : obtenir la taille du fichier
= "write" : écrire dans le fichier
= "read" : lire dans le fichier
= "begin" : début de bufferisation
= "end" : fin de bufferisation — lancement des écritures multiples simultanées
= "buffer" : bufferisation — dans le cas d'écritures multiples simultanées
To  IN Permet de déterminer le nom du fichier
nom  IN Permet de déterminer le nom du fichier
cas  IN Permet de déterminer le nom du fichier
IN  IN  Enregistrements à écrire dans le fichier (cas d'appel "write" ou "buffer")
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
 OUT  Taille du fichier (cas d'appel "size")
Perl : scalaire passé par référence – JavaScript : tableau à 1 élément
retourne  OUT  0 : Traitement correct
1 : Erreur de traitement
k+1 : Erreur dans l'écriture du k-ième buffer (cas d'appel "end")
Fonctions util. 
 getFile Retourne le nom du fichier


Code Perl 

local(@wwBuf); 

sub wsFile {local($x,$To,$nom,$cas,$IN) = @_; 
 local($nomFic); 
if (($x ne "begin")&&($x ne "end")) {
 if (($x eq "check")&&($To eq "User")&&($nom eq "")) {return 0}
 if (($nomFic=&getFile($To,$nom,$cas)) eq "") {return 1}
}
if($x eq "check"){
}elsif($x eq "size"){
 (-e $nomFic) || return 1; $$IN = (-s $nomFic);
}elsif($x eq "write"){
 open(F1,">>".$nomFic) || return 1; print F1 $$IN; close(F1);
}elsif($x eq "read"){
 open(F1,"<".$nomFic) || return 1; $$IN .= join("",<F1>); close(F1);
}elsif($x eq "begin"){
 @wwBuf = (); 
}elsif($x eq "end"){
 local($k); 
for($k=0;$k<scalar(@wwBuf);$k++) {
 open(F1,">>".$wwBuf[$k][0]) || return $k+1; print F1 $wwBuf[$k][1]; close(F1);
}; 
}elsif($x eq "buffer"){
 @{$wwBuf[scalar(@wwBuf)]} = ($nomFic,$$IN); 
}
 return 0;
}
Code JavaScript 

var wwBuf; 

function wsFile(x,To,nom,cas,IN) { 
 var nomFic; 
if ((x!="begin")&&(x!="end")) {
 if ((x=="check")&&(To=="User")&&(nom=="")) {return 0}
 if ((nomFic=getFile(To,nom,cas))=="") {return 1}
}
switch(x) {
case "check":
 break;
case "size":
 if (typeof(eval(nomFic))=="undefined") {return 1}; IN[0] = eval(nomFic).length; break; 
case "write":
 if (typeof(eval(nomFic))=="undefined") {return 1}; eval(nomFic+" += IN[0]"); break; 
case "read":
 if (typeof(eval(nomFic))=="undefined") {return 1}; IN[0] += eval(nomFic); break; 
case "begin":
 wwBuf = []; break;
case "end":
 var k; 
for(k=0;k<wwBuf.length;k++) {
 if (typeof(eval(wwBuf[k][0]))=="undefined") {return k+1}; eval(wwBuf[k][0]+" += wwBuf[k][1]"); 
}; break;
case "buffer":
 wwBuf[wwBuf.length] = Array(nomFic,IN[0]); break;
}
 return 0;
}