Lire ou écrire un fichier texte
Création d'un fichier texte
var File f
write_file f "foo.txt" "text"
text_line "Ligne n°1"
text_characters "Début de la ligne n°2,"
text_value "A5"
text_line "Suite et fin de la ligne n°2"
Encodage avancé
Au niveau des options (le troisième et dernier paramètre) de l'instruction 'write_file', on peut utiliser des options pour obtenir un encodage plus précis du fichier.
Syntaxe
|
Effet
|
Exemple
|
charset "code_de_charset"
|
Spécifie l'encoding des caractères à utiliser dans le fichier produit.
|
charset "iso8859-1"
|
ascii
|
Exclue tous les caractères qui ne sont pas ASCII (c'est à dire approximativement tous les caractères accentués).
|
ascii
|
exclude "caractères_exclu" replace_with "caractère de remplacement"
|
Specifie les caractères interdits, qui seront remplacé par la chaine fournie via le paramètre 'replace_with'.
|
exclude "[0][cr][lf][dq]" replace_with "?"
|
xml
|
Effectue un encodage XML des chaines de caractères, par exemple '&' sera remplacé par '&' comme prévu dans le standard XML.
|
xml
|
html
|
Effectue un encodage HTML, identique à l'encodage XML, à ceci près que les retour à la ligne sont remplacés par la balise <BR>.
|
|
json
|
Effectue un encodage JSON des chaines de caractères.
|
json
|
edi
|
Effectue un encodage EDI des chaines de caractères.
|
edi
|
cr
|
Les retours à la ligne sont le caractère 'carriage return'. C'est l'encodage standard sur Mac.
|
cr
|
lf
|
Les retours à la ligne sont le caractère 'line feed'. C'est l'encodage standard sur Unix.
|
lf
|
cr+lf
|
Les retours à la ligne sont la séquence 'cariage return' suivi de 'line feed'. C'est l'encodage standard sur Windows et ce qui sera produit par défaut par Storga.
|
cr+lf
|
Si on utilise es instructions 'text_line' et 'text_characters', seuls l'option 'charset' est prise en compte.
Par contre, si on utilise l'instruction 'text_value' en lieu et place de 'text_characters', alors les options 'exclude' 'xml' 'html' et 'json' sont aussi prises en compte.
Exemple :
var File f
write_file f "foo.txt" "text charset [dq]iso8859-1[dq]"
...
Remarquez que charset "iso8859-1" indiqué dans la colonne exemple du tableau est devenue charset [dq]iso8859-1[dq]
En effet, pour entrer dans une chaîne de caractères d'un programme Storga, certains caractères doivent être prélablement encodés :
Le caractère
|
Devient
|
Qui signifie
|
"
|
[dq]
|
double quote
|
[
|
[lb]
|
left bracket
|
]
|
[rb]
|
right bracket
|
zéro
|
[0]
|
|
Voici un second exemple plus complet : la séquence exclude "[0][cr][lf][dq]" replace_with "?" du tableau devient exclude [dq][lb]0[rb][lb]cr[rb][lb]lf[rb][lb]dq[rb][dq] replace_with [dq]?[dq]
var File f
write_file f "foo.txt" "text exclude [dq][lb]0[rb][lb]cr[rb][lb]lf[rb][lb]dq[rb][dq] replace_with [dq]?[dq]"
...
Lecture d'un fichier texte
var File f
...
read_file f "text"
each_text_line l
...
La seule option active lors de la lecture d'un fichier texte est 'charset'. Le type de retour à la ligne est déterminé automatiquement.