Probleme Lecture ficher txt

[Résolu]
Signaler
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012
-
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

Messages postés
20
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
10 octobre 2007

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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

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
Messages postés
20
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
10 octobre 2007

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.
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

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
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

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
Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012

meric je les mis a 0 et toute etais correct merci encore
DraaFIl