Bonjour,

j'ai le code suivant :
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
48
49
50
51
52
53
    var
        // File
        lrFile : File ;
        // Aborted
        lbAborted : Boolean ;
        // Buffer
        laBuffer : TMemory ;
        // Count of read
        liCountRead : Integer ;
    begin
        Filemode := fmOpenRead ;
 
        GetMem(laBuffer, piUserBufferSize) ;
 
        AssignFile(lrFile, asFileName) ;
        Reset(lrFile, 1) ;
 
        lbAborted := IsAborted ;
 
        liCountRead := piUserBufferSize ;
 
        while (IOResult = 0) and (liCountRead = piUserBufferSize)
            and not lbAborted do
        begin
            BlockRead(lrFile, laBuffer, piUserBufferSize, liCountRead) ;
 
            aoDataSocket.SendBuffer(laBuffer, liCountRead) ;
 
            lbAborted := IsAborted ;
 
            if piWaitingTransfertTime > 0
            then begin
                Sleep(piWaitingTransfertTime) ;
            end ;
        end ;
 
        FreeMem(laBuffer) ;
 
        if lbAborted
        then begin
            Result := trAborted ;
        end
        else if IOResult = 0
        then begin
            Result := trNoError ;
        end
        else begin
            Error(GetIoResultString(IOResult) + ' ' + asFileName) ;
            Result := trError ;
        end ;
 
        CloseFile(lrFile) ;
    end ;
Mon problème, c'est que BlockRead ne lit rien. J'ai un runtime error 998.

Le problème vient de laBuffer qui est un pointer. Si je met laBuffer^ c'est bon, mais j'ai un doute.

Quelqu'un peut m'éclairer ?

Merci