buf: PAnsiChar;
...
i:= fs.Read(buf[1], 4096);
Nemělo by tam být buf[0] ?
No ja si tim nejsem jisty, podle toho, jak se k tomu asi pak chovas.
Ja jsem prvni napsal tu variantu s tim SetLength, kdy jsem si byl jisty ze mam alokaci dobre, a data zacinaji na [1], a pak jsem zkusil to GetMem, ale neuvedomil jsem si, ze je to trosku neco jineho a nejsem si jist jak se k tomu dal kompilator postavi a kam presne FBuffer^ ukaze, a asi neni uplne korektni pak ta operace s Copy (myslim tim v te varianta s GetMem).
Ale jako ciste buffer na PAnsiChar to fungovat bude.