Sélecteur de fichier Importation de texte



Le champ nommé "colonnes" permet de définir selon quel critère telle ou telle partie du texte va aller dans une même colonne ou passer dans les colonnes suivantes. Cette définition s'effectue suivant la chaîne de caractères que l'on entre dans ce champ. Voici la description de sa grammaire :
la chaîne doit se présenter sous une forme de séries de séquences séparées par des points virgules.

<sequence1>;<sequence2>;<sequence3>

Chaque séquence a pour but de trouver ce qui va séparer le texte en colonnes.

Une séquence peut prendre deux formes :

  1. un nombre, indiquant le nombre de caractères devant entrer dans une colonne avant de passer à la colonne suivante.
     
  2. une chaîne de caractères servant de délimiteur, entourée par des guillemets (" "). Lorsque la chaîne de caractères est trouvée dans le texte importé, XQuad la considère comme un changement de colonne.
    Pour inclure des caractères spéciaux dans cette chaîne, il est possible de les entrer par leur code ASCII en décimal, octal ou hexadécimal sous les formes respectives: \65 \0101 \0x41 pour le caractère A, etc. Vous pouvez vous référer à la table ASCII fournie en Annexe.
    Certains caractères spéciaux peuvent avoir une autre forme dont voici la liste :

Le caractère !, placé en début de séquence, sert à indiquer que la colonne qui devrait être normalement générée par la séquence n'apparaîtra pas dans le tableau. Il permet donc de 'sauter' des informations.

Le caractère *, placé après une séquence de type 'chaîne de caractères', sert à indiquer que le séparateur de colonne est la chaîne de caractères trouvée dans le texte importé, une fois ou plus.

La séparation en ligne du fichier importé s'effectue au premier caractère \n (new line) ou \r (carriage return) ou \n\t (new line + carriage return) rencontré, après que chaque séquence ait été vérifiée. Deux possibilités s'offrent à vous, si le champ "colonnes" se termine par :

Exemple :
Pour importer un fichier last.txt généré par la commande :

$ last > last.txt

dont voici un rendu :

register  ttyq0        Fri Apr 12 14:45 - 14:46  (00:00)
rlogin    ttyq0        Fri Apr 12 14:45 - 14:45  (00:00)
support   ttyq0        Fri Apr 12 14:45 - 14:45  (00:00)
rlogin    ttyq0        Fri Apr 12 14:45 - 14:45  (00:00)
axene     ttyq0        Fri Apr 12 14:43 - 14:45  (00:01)
rlogin    ttyq0        Fri Apr 12 14:43 - 14:43  (00:00)
[....]
rc2                    Fri Apr 12 06:18 - 06:18  (00:00)
rc2                    Fri Apr 12 06:17 - 06:18  (00:00)
uadmin                 Fri Apr 12 06:16 - 06:17  (00:01)
echo                   Fri Apr 12 06:16 - 06:16  (00:00)
echo                   Fri Apr 12 06:16 - 06:16  (00:00)
rc0                    Fri Apr 12 06:16 - 06:16  (00:00)
rc0                    Fri Apr 12 06:16 - 06:16  (00:00)
LOGIN     console      Fri Apr 12 06:16 - 06:18  (00:02)
LOGIN     console      Thu Apr 11 06:19 - 06:16  (23:56)
getty                  Thu Apr 11 06:19 - 06:16  (23:56)
rc2                    Thu Apr 11 06:19 - 06:19  (00:00)
[....]
 on peut utiliser la chaîne suivante pour le champ "colonnes" :
10;13;" ";" "*;" ";" ";!"- ";" "*;!"(";")";

Explications :
10;13;" ";" "*;" ";" ";!"- ";" "*;!"(";")";

10;13 permet de récupérer les 2 premières colonnes, celles-ci ayant respectivement 10 et 13 caractères. On aurait pu mettre " "*;" "* mais la deuxième colonne n'existe pas forcément.

" ";" "*;" ";" " permet de récupérer respectivement les champs jour (Fri), mois (Apr), jour du mois (12) et heure de connection (14:14).

!"- " permet de sauter le tiret qui sépare l'heure de connexion de l'heure de déconnexion.

" "* permet de récupérer l'heure de déconnexion et de sauter les espaces suivants.

!"(" permet de sauter la parenthèse ouvrante.

")"; permet de récupérer le delta entre l'heure de connexion et l'heure de déconnexion.



XQuad (c)1996-98 Axene