cs_mcoppa
Messages postés40Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention25 juillet 2014 27 nov. 2012 à 16:29
C'est une bonne idée, il est vrai que j'ai toujours tendance à ouvrir les fichiers textes en Input.
cs_Multiprise
Messages postés63Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention23 avril 2013 27 nov. 2012 à 15:13
if fallait lire
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #ican
et non
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #1
cs_Multiprise
Messages postés63Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention23 avril 2013 27 nov. 2012 à 15:11
Le transfert des données lors du chargement d'un fichier ouvert en format texte (input)peut être très long en fonction de sa taille. Une méthode beaucoups plus rapide existe. Elle consiste à ouvir le fichier en mode binaire. Pour info et sans prétention, j'ai modifié le code comme ceci:
Private Sub Command2_Click()
Dim sBuff As String
Dim iCan As Integer
'
On Error Resume Next
'
FteFic = False
Text3.Text = GetOpenFile(Me.hWnd)
If Dir(Text3.Text) = "" Then
MsgBox "Ficher inexistant"
FteFic = True
Exit Sub
Else
Text1.Text = ""
Text2.Text = ""
Text4.Text = ""
If Text3.Text = "" Then
Text3.SetFocus
Exit Sub
End If
'init des erreurs
err.clear
'ouverture d'un canal
iCan = FreeFile
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #1
If Err.Number = 0 Then
'creation d'une chaine vide de la taille des données du fichier
sBuff = String(LOF(iCan), Chr(32))
'transfert des données du fichier dans la variable temporaire (depuis le premier octet)
Get #iCan, 1, sBuff
'fermeture du fichier
Close #iCan
'transfert des données de la variable temporaire dans la zone de texte
Text1.Text = sBuff
else
'Ajouter le code de gestion d'erreur (par exemple)
msgbox "Erreur: " & err.number & "/" & err.description
'ini des erreurs
err.clear
End If
End If
End Sub
27 nov. 2012 à 16:29
27 nov. 2012 à 15:13
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #ican
et non
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #1
27 nov. 2012 à 15:11
Private Sub Command2_Click()
Dim sBuff As String
Dim iCan As Integer
'
On Error Resume Next
'
FteFic = False
Text3.Text = GetOpenFile(Me.hWnd)
If Dir(Text3.Text) = "" Then
MsgBox "Ficher inexistant"
FteFic = True
Exit Sub
Else
Text1.Text = ""
Text2.Text = ""
Text4.Text = ""
If Text3.Text = "" Then
Text3.SetFocus
Exit Sub
End If
'init des erreurs
err.clear
'ouverture d'un canal
iCan = FreeFile
'ouverture du fichier en mode binaire
Open Text3.Text For Binary Access Read As #1
If Err.Number = 0 Then
'creation d'une chaine vide de la taille des données du fichier
sBuff = String(LOF(iCan), Chr(32))
'transfert des données du fichier dans la variable temporaire (depuis le premier octet)
Get #iCan, 1, sBuff
'fermeture du fichier
Close #iCan
'transfert des données de la variable temporaire dans la zone de texte
Text1.Text = sBuff
else
'Ajouter le code de gestion d'erreur (par exemple)
msgbox "Erreur: " & err.number & "/" & err.description
'ini des erreurs
err.clear
End If
End If
End Sub