| |

ALTERNATE / SET ALTERNATE
Contrôle l'enregistrement des entrées/sorties dans un fichier texte.
Syntaxe
SET ALTERNATE on | OFF
SET ALTERNATE TO [<fichier> | ? | <masque de fichier>
[ADDITIVE]]
<fichier> | ? | <masque de fichier>
( ? |
<masque de fichier> Non reconnus dans dBase III et dBase IV)
Le fichier texte ALTERNATE ou fichier cible, à créer ou à ouvrir. Les options ?
et <masque de fichier> affichent une boîte de dialogue dans laquelle vous
pouvez spécifier un nouveau fichier ou sélectionner un fichier existant. Si vous
spécifiez un fichier sans inclure son chemin d'accès, dBASE le recherche dans le
répertoire en cours, puis dans le chemin d'accès défini avec SET PATH. Si vous
spécifiez un fichier sans inclure son extension, dBASE lui affecte l'extension .TXT.
ADDITIVE (non reconnue par
dBase III)
Ajoute la sortie dBASE qui s'affiche dans le volet de résultats de la fenêtre Commande
au fichier ALTERNATE spécifié. Si le fichier n'existe pas, dBASE renvoie un message
d'erreur.
Valeur par défaut
La valeur par défaut de SET ALTERNATE est OFF. Pour changer cette valeur, définissez le
paramètre ALTERNATE dans la section [OnOffCommandSettings] de DBASEWIN.INI. Pour définir
un nom de fichier par défaut afin de l'utiliser avec SET ALTERNATE, spécifiez un
paramètre ALTERNATE dans la section [CommandSettings] de DBASEWIN.INI.
Il s'agit du fichier PLUS.ini et non dbasewin.ini
SET ALTERNATE TO permet de créer un enregistrement de la sortie dBASE et
des commandes. Le contenu de ce fichier peut être modifié avec l'éditeur de texte afin
qu'il soit utilisé dans des documents ou stocké sur disque pour une utilisation
ultérieure. Vous pouvez enregistrer, modifier et incorporer des séquences de commandes
dans de nouveaux programmes. Pour envoyer les résultats de commandes @...SAY dans un
fichier texte, utilisez SET DEVICE TO FILE.)
SET ALTERNATE TO <fichier> n'ouvre qu'un fichier ALTERNATE, alors
que SET ALTERNATE ON | OFF contrôle le stockage de l'entrée et de la sortie
dans ce fichier. Un seul fichier ALTERNATE peut être ouvert à la fois. Lorsque vous
émettez SET ALTERNATE TO <fichier> pour ouvrir un nouveau fichier, dBASE ferme le
fichier ALTERNATE précédemment ouvert.
Lorsque SET ALTERNATE est à ON, dBASE stocke la sortie vers le volet de résultats de la
fenêtre Commande dans le fichier texte ouvert avec SET ALTERNATE TO <fichier>.
Un fichier ALTERNATE doit être ouvert avec SET ALTERNATE ON pour qu'il soit
effectif. SET ALTERNATE n'affecte pas la sortie de programme ; elle détermine
uniquement quand la sortie doit être sauvegardée dans le fichier ALTERNATE. Les saisies
clavier de la fenêtre Commande ne sont pas stockées dans le fichier ALTERNATE.
Pour éviter que votre fichier texte commence par une ligne blanche, utilisez deux points
d'interrogation (??) avant le premier mot que vous voulez envoyer dans le fichier
ALTERNATE.
L'émission de SET ALTERNATE OFF ne ferme pas le fichier ALTERNATE. Avant
d'accéder au contenu du fichier ALTERNATE, fermez-le avec CLOSE ALTERNATE ou SET
ALTERNATE TO (sans nom de fichier). Cela permet de vérifier que tous les enregistrements
stockés par dBASE dans le fichier ALTERNATE sont bien transférés sur disque et bascule
automatiquement SET ALTERNATE à OFF.
Si SET SAFETY est à ON, que l'option ADDITIVE n'est pas utilisée et qu'un fichier de
même nom que le fichier cible existe déjà, dBASE affiche une boîte de dialogue
demandant la confirmation de l'écrasement du fichier. Si SET SAFETY est à OFF et que
l'option ADDITIVE n'est pas utilisée, tout fichier existant de même nom que le fichier
cible sera écrasé sans message d'avertissement préalable.
Dans cet exemple, les commandes SET ALTERNATE permettent d'écrire du
texte sur l'écran et dans un fichier ASCII :
SET ALTERNATE TO Rose
* Ouvre Rose.txt pour la sortie de texte
? "Ouverture du fichier ALTERNATE" && uniquement
sur l'écran
SET ALTERNATE ON
* ?,?? les commandes vont maintenant dans Rose.txt
? "Une rose "
SET ALTERNATE OFF && Arrête le stockage dans Rose.txt.
?? "jalousement gardée dans votre jardin "
SET ALTERNATE ON &&
Ajoute dans Rose.txt.
?? "est une rose "
?? "est une rose "
? "dont vous serez fier"
CLOSE ALTERNATE && Ferme Rose.txt
* Rose.txt contient :
* Une rose est une rose est une rose
* dont vous serez fier |
Note
:
|
Se débarraser du Ctrl-Z situé en fin
d'un fichier créé par Alternate
Héritage de l'époque du CPM, et depuis dBase II, les fichiers créés par
Alternate se terminent par Ctrl-Z, soit le charactère Ascii 26.Pour s'en débarrasser,
deux fonctions ont été proposées :
function rem26(cFilename)
* Remplacer le Ctrl-Z par un caractère espace
*ouvre le fichier avec les accès lecture et
écriture
nH=fopen(cFilename,"RW")
*va 1 char en arriere (-1) depuis la fin du
fichier (2)
fseek(nH,-1,2)
*lit led ernier charactère
c=fread(nH,1)
*est-ce le chr(26)
if c==chr(26)
*revenir en arrière, la
lecture a déplacé le pointeur
seek(nH,-1,2)
*insère un espace à sa place
fwrite(nH," ")
endif
fclose(nH)
return |
La question posée : Plusieurs ensembles de fichiers de texte que
j'ai réalisé avec DB2K n'a pas pu être lu par ma banque en raison d'un caractère hors
du commun à la fin de chaque fichier texte.
J'ai créé les fichiers texte en utilisant DB2K avec les données dans les colonnes
fixes. J'ai utilisé Set Alternate to et ? & ?? pour la sortie des données. Les
sorties sont OK pour chaque ligne de données à l'exception de la dernière ligne.
Utilisant le Bloc-notes, la dernière ligne a un carré noir à la fin. La représentation
Hex: 1A. Toutes les autres lignes se terminent par 0D 0A qui sont je crois retour chariot
& Linefeed ce qui est OK. Pourquoi la dernière ligne ne se termine pas par le même
0D 0A?
* Appel de la Fonction : removelastchar("votrefichiertexte.txt") * Ceci éliminera le charactère de fin de fichier qui occasionne le
trouble.
Function Removelastchar
parameters cfile
nhandle = fopen(cfile,"RW")
fseek(nhandle,0,2
fseek(nhandle,-1,1)
if fgets(nhandle) = chr(26)
fseek(nhandle,-1,2)
fwrite(nhandle," ")
fflush(nhandle)
endif
fclose(nhandle)
return
** eop -- removelastchar |
retour
Sources :
Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm par Ken Mayer
Aide dBase Plus 2.6.0
From: "B. Betcher"
Newsgroups: dbase.version5
Subject: Low Level and CHR(26)
Date: Tue, 10 Sep 2002 12:08:14 -0500 |
From: "Geoff Wass [dBVIPS]"
Newsgroups: dbase.how-to
Sent: Wednesday, February 07, 2007 7:21 AM
Subject: Re: Alternate file end |
From: "ute carter"
Newsgroups: dbase.programming
Subject: Re: Textfile tripped by Uncommon character
Date: Wed, 7 Nov 2001 07:58:52 -0500 |
|
Retour à l'accueil
Les informations de cette page sont données à titre indicatif et ne se substituent
pas à celles contenues dans l'Aide de votre version de dBase qui reste la meilleure
documentation.
Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.
Dernière modification : dimanche 15 août 2010
© M.Abraham.
|