Comment se positionner à un endroit précis avant d'écrire dans un fichier ????

youkizouki Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 12 octobre 2005 - 28 avril 2005 à 17:50
youkizouki Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 12 octobre 2005 - 29 avril 2005 à 10:40
bonjour à tous,

savez comment mettre en forme les ligne d'un fichiers créer avec la commande print (espacements)

je vous explique:

j'écris dans mon fichier en faisant :

Print #num2, "* "; tabNom(i); " : ", cptErreur; " erreur(s), ", cptAvertissement; " avertissement(s), ", _
cptReference; " sans reference"

(dans un Print, l'utilisation des ',' a pour but de sauter une colonne )

';' ecrit à la suite (sans espacé)

-------------------------------------------------------------
* code conseillère :..........0 erreur(s),...............0 avertissement(s),........0 sans reference
* prénom conseillère : 0 erreur(s), 0 avertissement(s), 10 sans reference
* code formation : 0 erreur(s), 0 avertissement(s), 2 sans reference
* code thème : 0 erreur(s), 0 avertissement(s), 0 sans reference
* nombre de visite : 5 erreur(s), 0 avertissement(s), 0 sans reference
* durée d'utilisation : 5 erreur(s), 0 avertissement(s), 0 sans reference
* date de fin du thème visité : 5 erreur(s), 0 avertissement(s), 0 sans reference
* heure de fin du thème visité : 4 erreur(s), 1 avertissement(s), 0 sans reference
----------------------------------------------------------------------------------

Mon probleme est que le saut de colonne n'est apparement qu'un saut de X espaces et n'aligne donc pas les valeurs les une en dessous des autres

Ce qu'il faudrait c'est ce positionner au 50° caracteres (par exemple) juste apres avoir ecrit tabNom(i), ce qui alignerais toutes les valeurs quelque soit la longueur de TabNom(i)

ce qui nous donnerais en résumé :

--------------------------------------------------------------
* code conseillère : 0 erreur(s), 0 avertissement(s), 0 sans reference
* prénom conseillère : 0 erreur(s), 0 avertissement(s), 10 sans reference
* code formation : 0 erreur(s), 0 avertissement(s), 2 sans reference
* code thème : 0 erreur(s), 0 avertissement(s), 0 sans reference
* nombre de visite : 5 erreur(s), 0 avertissement(s), 0 sans reference
* durée d'utilisation : 5 erreur(s), 0 avertissement(s), 0 sans reference
* date de fin du thème visité : 5 erreur(s), 0 avertissement(s), 0 sans reference
* heure de fin du thème visité : 4 erreur(s), 1 avertissement(s), 0 sans reference
---------------------------------------------------------------------------------

savez comment faire pour se positionner a un endroit précis avant d'écrire je sais qu'il y a currentX avec un objet Printer mais je ne trouve rien pour les fichiers.... (j'ai utilisé 'Spc(5)' mais ceci laisse 5 espaces avant d'écrire et donc le décalage ce fait quand meme....)

merci d'avance pour votre attention, c'est tres important pour moi !

a tres bientot j'espère,

cordialement,

mik
a

3 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 avril 2005 à 18:37
la virgule permet d'imprimer à la prochaine zone d'impression.
sachant que chaque zone d'impression fait 14 caractères, à toi de caculer le nombre de zones de 14 caractères donc le nombre de virgules à ajouter...
pas mieux avec les caractères de tabulations tous les huit caractères...

une autre possibilité c'est de calculer la longueur des zones et de rajouter les espaces nécéssaires entre chaque zone.

pouah!!!
défini un Type qui représente une Ligne avec des chaînes de longueur fixe, et toutes tes Lignes seront cadrées pareilles.

Daniel
0
youkizouki Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 12 octobre 2005 1
29 avril 2005 à 09:48
bonjour Gobillot,

le réel problème vient du fait que la place que prend un caractère varie en fonction de la lettre qu'il contient. par exemple, la lettre 'm' prendra plus de place que la lettre 'i', donc si je defini la chaine sur 40 caracteres par exemple, une chaine contenant 30 'm' et 10 blancs sera plus longue qu'une chaine contenant 30 'i' et 10 blancs alors qu'elle sont tout deux de 40 caracteres au total. Ce qui detruit malheureusement tes 3 propositions

ex:
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm__________ : 40 caracteres
iiiiiiiiiiiiiiiiiiiiiiiiiiiiii__________: 40 caracteres

j'avais déjà rencontré ce problème lors d'un impression mais je l'avais palier en utilisant la propriété Printer.CurrentX(nbre) qui me place obligatoirement à un endroit précis avant d'imprimer...

Connais tu si il y a un autre moyen d'y parvernir au pire des cas tanpis, mais une présentation bien structurée fait quand meme son effet...

je te souhaite une bonne journée, et a tres bientot j'espere...

cordialement,
mika
0
youkizouki Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 12 octobre 2005 1
29 avril 2005 à 10:40
OK !

le problème vient du Notepad windows...
j'ai mis en forme avec la fonction Tab(nbre) et j'ai ouvert avec un autre éditeur (ultraEdit pour ceux qui connaissent) et tout passe parfaitement...

merci a tous et bonne continuation !!!
0
Rejoignez-nous