Probleme Lecture ficher txt

Résolu
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 26 sept. 2006 à 23:58
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 29 sept. 2006 à 02:18
Bonjour a tous, voici mon probleme, le code suivant lit mon fichier txt et l'imprime. Mon probleme c'est qu'il sauf la premiere ligne et commence a imprimer la 2ieme ligne. Si vous avez une solution dites la moi.

Merci
DraaFil

Code:
Open Patch For Input As #FileNb
        Do While Not EOF(FileNb)
            Line Input #FileNb, Vals
            If Right$(Vals, 1) = ";" Then
                Vals = Left$(Vals, Len(Vals) - 1)
            End If
            Var = Split(Vals, ";")
           
            'DocTexte = ""
            If ChkNom.Value = 1 Then
            DocTexte = Var(1) & Replace(Space(12 - Len(Var(1))), " ", Chr(160)) & Var(2)
            End If
            If ChkPhone.Value = 1 Then
                DocTexte = DocTexte & Replace(Space(12 - Len(Var(2))), " ", Chr(160)) & Var(3)
            End If
            If ChkCell.Value = 1 Then
                DocTexte = DocTexte & Replace(Space(15 - Len(Var(3))), " ", Chr(160)) & Var(4)
            End If
         
            Printer.Print DocTexte
            NbLigne = NbLigne + 1
            'Adresse = ""
            If ChkAdresse.Value = 1 Then
                Adresse = "                        " & Var(5)
                Printer.Print Adresse
                NbLigne = NbLigne + 1
            End If
           
           
            If NbLigne = 44 Then
                Printer.Print 
               Call PiedPage
                page = page + 1
                Printer.NewPage
                NbLigne = 0
                Call EnTetePage
            End If
           
        Loop
        Dim Reste As Integer
        Reste = 44 - NbLigne
       
        Dim z As Integer


        For z = 1 To Reste
            Printer.Print "  "
        Next z 
        
        Printer.Print    
Close #FileNb
Printer.EndDoc

7 réponses

xav0 Messages postés 20 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 10 octobre 2007
28 sept. 2006 à 07:29
Je pense que c'est l'instruction Printer.Line (0, 40)-(210, 40) (vers la fin) qui pose problème : elle finit en x = 210 et le texte qui suit est imprimé à partir de là. En ajoutant Printer.CurrentX = 20 juste après, la première ligne devrait redevenir visible.
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 sept. 2006 à 08:36
Je ne vois à priori de problème dans ton code, sauf que si aucune des 3 premières checkbox n'est cochée tu va imprimer une ligne vide.

Met un point d'arret sur le premier Printer.print, et regarde ce que vaut DocTexte pour la première ligne.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
27 sept. 2006 à 14:05
c,est ce que je mesuis dis ,mais sur l,impression il manque la premiere ligne, bixard. pour les checkbox je sais  mias il est pas la mon probleme.

merci
DraaFil
0
xav0 Messages postés 20 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 10 octobre 2007
27 sept. 2006 à 15:06
Bonjour,

Est-ce que la fonction EnTetePage est programmée et marche ?

Sinon, c'est peut-être que la première ligne sort de la zone

imprimable. En commançant plus bas ça pourrait marcher

(Printer.CurrentY = Printer.TextHeight("A") * 2 au début du code).

En tout cas il vaudrait mieux décommenter l'instruction

DocTexte "", pour le cas où ChkNom.Value 0.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
27 sept. 2006 à 23:15
j'ai essayer Printer.CurrentY = Printer.TextHeight("A") * 2  mais cela ne fonctionne pas. j'ai modifier le currenty et meme resultat, je suis embeté.

Merci
Pour votre aide
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
27 sept. 2006 à 23:36
j'ai fais divers test et je me suis rendu compte que le probleme est dans ma fonction EnTetePage()(quand je la call pas , toute mes valeurs sont la). Si vous trouver dis-le moi :p
merci

Private Function EnTetePage()
    Dim EnTete As String
    Dim imgLogo As StdPicture
    Dim CheminLogo As String


    'INITIALISATION DE L'IMAGE
    CheminLogo = App.Path & "\logo.jpg"
    Set imgLogo = LoadPicture(CheminLogo)
   
    'ENTETE DU DOCUMENT
    Printer.ScaleMode = vbMillimeters
    Printer.Font = "Courier New"
    Printer.PaintPicture imgLogo, 85, 0
    Printer.CurrentX = 64
    Printer.CurrentY = 22
    Printer.FontSize = 20
    Printer.FontBold = True 'gras
    Printer.Print "LISTE TÉLÉPHONIQUE"
    Printer.Line (0, 30)-(210, 30)
    Printer.CurrentX = 20
    Printer.CurrentY = 33
    Printer.FontSize = 12
   
    EnTete = ""
    If ChkNom.Value = 1 Then
    EnTete = "NOM"
    End If
    If ChkPhone.Value = 1 Then
    EnTete = EnTete & "                TÉLÉPHONE"
    End If
    If ChkCell.Value = 1 Then
    EnTete = EnTete & "       CELLULAIRE"
    End If
    If ChkAdresse.Value = 1 Then
    EnTete = EnTete & "       ADRESSE"
    End If
    Printer.Print EnTete
    'Printer.Print "NOM   TÉLÉPHONE  CELLULAIRE ADRESSE"
    Printer.Line (0, 40)-(210, 40)
   
    Printer.CurrentY = 60
    Printer.FontSize = 12
    Printer.FontBold = False 'gras
End Function
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
29 sept. 2006 à 02:18
meric je les mis a 0 et toute etais correct merci encore
DraaFIl
0