Acces en mode binaire

FRatvks Messages postés 52 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 2 octobre 2009 - 11 mai 2007 à 19:05
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 11 mai 2007 à 19:48
Bonsoir,

j'ai une appli ou j'envoi des fichiers binaire (un firmware) a travers un modem et qui doivent etre "traité avant envoi .
Comme le temps de transfert est long je veux faire le chargement et traitement pendant que mon interlocuteur (une machine) reçois et traite mon paquet pour me demander le paquet suivant (c'est le protocole qui a été defini comme ca !)

Test avec 2 textbox dont le deuxieme en mutligne et scroll
Le premier sert a mettre le fichier avec son lien, le deuxieme a l'afficher a l'ecran
On peut "passer" n'importe qoui et donc un petit texte par exemple qui sera facle a relire ;-))

en mode "standard" ca ca marche nickel
Private Sub Command1_Click()
Text2 = ""
Message = Text1.Text
   
'OUVRE LE FICHIER EN LECTURE BINAIRE
message_filenum = FreeFile
Open Message For Binary Access Read As #message_filenum

     Do While Not EOF(message_filenum)
         GoSub Precharge 'charge le premier paquet
         info2send$ = preloaded$ 'Swap le paquet pour l'envoi
         Text2.Text = Text2.Text & info2send$
          'la j'attend le "AK" de la machine avant de renvoyer la trame suivante mais peu imprte pour l'exemple 
    Loop
           
 Close #message_filenum
 
Exit Sub

'*******************************************************************************************************************************
'*************                                           SOUS PROGRAMMES                                  **********************
'*******************************************************************************************************************************
Precharge: ' on precharge le bloc suivant pendant l'envoi du precedent pour gratter 1 peu de temps plutot que d'attendre le AK
    data_line = Input(25, #message_filenum) ' lire 25 octet
       ' la je fais mon traitement mais peut importe
    preloaded$ = data_line
Return

End Sub

Mais si je fais ca ca coupe la fin de mon fichier :

Private Sub Command1_Click()
Text2 = ""
Message = Text1.Text

'OUVRE LE FICHIER EN LECTURE BINAIRE
  message_filenum = FreeFile
  Open Message For Binary Access Read As #message_filenum
        GoSub Precharge 'charge le premier paquet
         info2send$ = preloaded$ 'Swap le paquet pour l'envoi

          Do While Not EOF(message_filenum)
              GoSub Precharge 'charge le paquet suivant
              Text2.Text = Text2.Text & info2send$
               info2send$ = preloaded$ 'Swap le paquet pour l'envoi
            Loop
   
  Close #message_filenum
           
       
Exit Sub

'*******************************************************************************************************************************
'*************                                           SOUS PROGRAMMES                                  **********************
'*******************************************************************************************************************************
Precharge: ' on precharge le bloc suivant pendant l'envoi du precedent pour gratter 1 peu de temps plutot que d'attendre le AK
    data_line = Input(25, #message_filenum) ' lire 25 octet

    preloaded$ = data_line
Return

End Sub

Je ne comprend pas pourquoi ca me bouffe la fin de mon fichier dans le deuxieme mode !
Quelq'un a une idée pour corriger ce pb ?

Merci a tous

Fr

1 réponse

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 mai 2007 à 19:48
Salut,
à mon avis c'est le Text2 qui n'est pas bon
ps: pour un fichier binaire Get et préférable à Input:
         Get
#message_filenum, ,
data_line      (data_line doit faire 25 caractères)






  Open Message For Binary Access Read As #message_filenum
        GoSub Precharge
        info2send$ = preloaded$
       Text2.Text = info2send$

          Do While Not EOF(message_filenum)
              GoSub Precharge
               info2send$ = preloaded$
              Text2.Text = Text2.Text & info2send$
            Loop

Daniel
0
Rejoignez-nous