PRINT #
GW-Basic, utilisé par PC-Basic, Exemple de
programmation
Instructions PRINT# et PRINT# USING
Pour écrire des données dans un fichier disque séquentiel.
Syntaxe:
PRINT#file number,[USINGstring expressions;]list of expressions
Commentaires:
file number utilisé lorsque le fichier a été ouvert pour la sortie.
string expressions est constitué des caractères de formatage décrits dans l'instruction PRINT USING.
list of expressions se compose des expressions numériques et/ou de chaîne à écrire dans le fichier.
Les guillemets doubles sont utilisés comme délimiteurs pour les expressions numériques et/ou de chaîne. Le premier guillemet double ouvre la ligne pour la saisie ; le deuxième guillemet double le ferme.
Si des expressions numériques ou de chaîne doivent être imprimées lors de leur saisie, elles doivent être entourées de guillemets doubles.
Si les guillemets doubles sont omis, la valeur affectée à l'expression numérique ou chaîne est imprimée.
Si aucune valeur n'a été attribuée, 0 est supposé.
Les guillemets doubles n'apparaissent pas à l'écran.
Par exemple:
10 PRINT#1, A
0
10 A=26
20 PRINT#1,
A
26
10 A=26
20 PRINT#1, "A"
A
Si des guillemets doubles sont requis dans une chaîne, utilisez CHR$(34) (le caractère ASCII pour les guillemets doubles).
Par exemple:
100 PRINT#1,"He said,"Hello", I think"
He
said, 0, I think
car la machine attribue la valeur 0 à la variable "Bonjour".
100 PRINT#1, "He said, " CHR$(34) " Hello, "
CHR$(34) " I think."
He said, "Hello," I think
Si les chaînes contiennent des virgules, des points-virgules ou des blancs de début significatifs, entourez-les de guillemets doubles.
L'exemple suivant saisira "CAMERA" dans A$ et "AUTOMATIC 93604-1" dans B$ :
10 A$="CAMERA, AUTOMATIC": B$="93604-1"
20
PRINT#1, A$; B$
30 INPUT#1, A$, B$
Pour séparer correctement ces chaînes, écrivez des guillemets doubles successifs en utilisant CHR$(34).
Par exemple:
40 PRINT#1,CHR$(34); A$; CHR$(34); CHR$(34); B$; CHR$(34) "CAMERA,AUTOMATIC""93604-1"
L'instruction PRINT# peut également être utilisée avec l'option USING pour contrôler le format du fichier disque.
Par exemple:
PRINT#1, USING"$$###.##."; J; K; L
PRINT# ne compresse pas les données sur la disquette. Une image des données est écrite sur la disquette, comme elle serait affichée sur l'écran du terminal avec une instruction PRINT.
Pour cette raison, assurez-vous de délimiter les données sur la disquette afin qu'elles soient entrées correctement à partir de la disquette.
Dans list of expressions, les expressions numériques doivent être délimitées par des points-virgules.
Par exemple:
PRINT#1, A; B; C; X; Y; Z
Si des virgules sont utilisées comme délimiteurs, les blancs supplémentaires insérés entre les champs d'impression seront également écrits sur la disquette. Cependant, les virgules n'ont aucun effet si elles sont utilisées avec le format exponentiel.
Les expressions de chaîne doivent être séparées par des points-virgules dans la liste.
Pour formater correctement les expressions de chaîne sur la disquette, utilisez des délimiteurs explicites dans la liste des expressions.
Par exemple, les éléments suivants :
10 A$="CAMERA": B$="93604-1"
20 PRINT#1, A$,
B$
donne une image disquette de :
CAMERA93604-1
Comme il n'y a pas de délimiteurs, cela ne serait pas entré sous la forme de deux chaînes distinctes. Pour corriger le problème, insérez des délimiteurs explicites dans l'instruction PRINT# comme suit :
30 PRINT#1, A$; ","; B$
Cela donne l'image de disquette suivante, qui peut être relue dans deux variables de chaîne :
CAMERA, 93604-1
Exemple de programme
5 CLS
10 OPEN"O",#1,"text.bas" 'Ouvre text.bas
30 PRINT #1,10;"REM ";"Resultat du programme
fichier.bas" ' Écrit REM Résultat du programme fichier.bas ligne 10
40 PRINT #1,20;"test "; 'Écrit test ligne 20 le
point-virgule ; pour écrire sur la même ligne
50 PRINT #1,"test" 'Écrit test sur la meme ligne
20 pas de point-virgule
60 PRINT #1,30;"test " 'Écrit test ligne 30
100 CLOSE #1 'Fermer et écrit le fichier text.bas
Résultat dans le fichier text.bas
10 REM Resultat du programme fichier.bas
20 test test
30 test