Bonjour,
je voudrais lire un fichier texte en binaire, mais j'ai l'impression qu'il est trop gros (222Mo). voici mon code (que j'ai copié à je ne sais plus qui) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
Dim nomFichier As String, numFile As Integer
Dim errCode As Integer
Dim errString As String
Dim fileContent As String
Dim t() As String
 
fileContent = ReadFileToBuffer(nomFichier, errCode, errString)
If errCode = 0 Then
    ...
Else
    ' Erreur rencontrée, affichage
    MsgBox "Erreur lors de la lecture. Code : " & errCode & ". Description : " & errString
End If
 
' Cette fonction lit le contenu du fichier szFileName et retourne
' ce contenu. En cas d'erreur, elle retourne une chaîne vide et
' renseigne le code d'erreur et la description de l'erreur
'
Private Function ReadFileToBuffer(ByVal szFileName As String, _
                                 ByRef errCode As Integer, _
                                 ByRef errString As String) As String
    Dim f As Integer
    Dim Buffer As String
 
    ' trappe les erreurs
    On Error GoTo ReadFileToBuffer_ERR
 
    ' Ouverture du fichier en 'Binary'
    f = FreeFile
    Open szFileName For Binary As #f
        ' préallocation d'un buffer à la taille du fichier
        Buffer = Space$(LOF(f))
        ' lecture complète du fichier
        Get #f, , Buffer
    Close #f
    ReadFileToBuffer = Buffer
ReadFileToBuffer_END:
    Exit Function
 
ReadFileToBuffer_ERR:
    ' Gestion d'erreur
    ReadFileToBuffer = ""
    errCode = Err.Number
    errString = Err.Description
    Resume ReadFileToBuffer_END
End Function
Au décodage, à la ligne , on passe directement à (sans fermer le fichier du coup !!), et le message d'erreur c'est : "Erreur lors de la lecture. Code 7 Description : mémoire insuffisante"

J'ai lu que pour des gros fichier il faut faire du file mapping, mais après avoir cherché un certain temps, je n'ai rien trouvé de concret sur comment on l'utilise en vba. Est--ce que quelqu'un saurait me donner une base de code pour faire du fileMapping ?

(mon but au fait étant d'ajouter une ligne à la fin de mon fichier si la dernière ligne respecte certaines conditions)

Merci