Bonjour,
j'ai le code suivant :
Mon problème, c'est que BlockRead ne lit rien. J'ai un runtime error 998.
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 ;
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
Partager