Note :

Le module fieldfileaccess propose des fonctions de manipulation de tableaux enregistrés.

Il offre les fonctions suivantes:

Concept :


Ces fonctions permettent d'utiliser des tableaux sauvegardés dans des fichiers.

ffa_add

Cette fonction permet d'ajouter une entrée au tableau. Cette entrée est accessible avec la clef indiquée.
Les trois premiers paramètres sont :

Le mode indique comment doivent être interprétés les paramètres qui suivent:

Code d'erreur renvoyé par la fonction :

Exemple d'utilisation de ~ffa_add :


  ~ffa_add("monfichier","clef0",0,"valeur scalaire")
  
  ~ffa_add("monfichier","clef1",1,"val1","val2","val3")

  ~ffa_add("monfichier","clef2",2,"K1","valeur1","K2","valeur2","K3","valeur3")

ffa_readkey

Cette fonction permet de lire dans une zone temporaire la valeur associée à la clef indiquée.
Elle prend deux paramètres:

Code d'erreur renvoyé par la fonction :

ffa_getkey

Cette fonction sert à récupérer de la zone temporaire une valeur. Elle prend un paramètre optionnel qui est la clef.

Exemple d'utilisation de ~ffa_getkey et ~ffa_readkey (l'exemple utilise le fichier créé dans l'exemple précédent) :


  ~ffa_readkey("monfichier","clef0")
  ~ffa_getkey()				       => valeur scalaire

  ~ffa_readkey("monfichier","clef1")
  ~ffa_getkey("1")			       => val2

  ~ffa_readkey("monfichier","clef2")
  ~ffa_getkey("K3")			       => valeur3

ffa_delkey

Cette fonction permet d'effacer un enregistrement. Elle prend deux paramètres:

Code d'erreur renvoyé par la fonction :

Exemple d'utilisation de ~ffa_delkey :


  ~ffa_delkey("monfichier","clef0")

ffa_writefile

Cette fonction permet d'enregistrer un tableau dans un fichier.
Elle prend 2 paramètres :

Code d'erreur renvoyé par la fonction :

ffa_readfile

Cette fonction renvoie toutes les valeurs du fichier sous la forme d'un tableau.
Elle prend 1 paramètre :

Code d'erreur renvoyé par la fonction :

Exemple d'utilisation de ~ffa_writefile et ~ffa_readfile :

  ~set('tab[un]', 'premier')
  ~set('tab[deux]', 'deuxième')
  ~set('tab[trois]', 'troisième')

  ~ffa_writefile("monfichier", ~get("tab"))

  ~array_list(~ffa_readfile("monfichier"), 0, , 'LM', '~array_fld('key') = ~array_fld('current'), ')
  
                        => un = premier, deux = deuxième, trois = troisème

ffa_replace

Cette fonction permet de modifier et d'ajouter des entrées.
Les valeurs du tableau en paramètre sont fusionnées avec celles présentes dans le fichier.
Si le fichier n'existe pas, celui-ci sera créé et la fonction aura le même effet que la fonction ~ffa_writefile.

Elle prend 2 paramètres :

En cas de succès le nouveau tableau est renvoyé

Code d'erreur renvoyé par la fonction :

Exemple d'utilisation de ~ffa_replace :

  ~set('tab[un]', 'premier')
  ~set('tab[deux]', 'deuxième')
  ~set('tab[trois]', 'troisième')

  ~ffa_writefile("monfichier", ~get("tab"))

  ~array_list(~ffa_readfile("monfichier"), 0, , 'LM', '~array_fld('key') = ~array_fld('current'), ')
  
                        => un = premier, deux = deuxième, trois = troisième
  
  ~set('tab2[un]', '1')
  ~set('tab2[quatre]', '4')
  
  ~ffa_replace("monfichier", ~get("tab2"))
  
  ~array_list(~ffa_readfile("monfichier"), 0, , 'LM', '~array_fld('key') = ~array_fld('current'), ')
  
                        => un = 1, deux = deuxième, trois = troisième, quatre = 4

ffa_filearray_replace

Cette fonction est presque identique à ffa_replace excepté qu'elle retourne une chaîne vide en cas de succès au lieu de retourner le nouveau tableau.

Vérouillage de fichier

NOTE : les explications ci-dessous sont uniquement données afin comprendre le fonctionnement interne du module.

Les fonctions du module fieldfileaccess utilisent un système de vérouillage de fichier (en anglais "file locked").

Lorsqu'un script travaille sur un fichier, le vérouillage empêche l'utilisation de ce même fichier par un autre script.

Les fonctions du module créent un fichier de même nom avec l'une des extensions suivantes : ".free" ou ".lock". Ces extensions permettent d'identifier si un fichier est vérouillé (.lock) ou non (.free).

Les fonctions du module enregistrent les valeurs dans un fichier avec pour extension ".php".