เมธอด THPDFRandomAccessSource.TransferAt
คัดลอกไบต์จากตำแหน่ง Offset ลง destination stream ทีละ chunk ละ 64 KB และคืนจำนวนไบต์ที่ย้ายไป
การประกาศ
function TransferAt(Offset, Count: Int64;
Destination: TStream): Int64; virtual;
ยูนิต
HPDFDoc
พารามิเตอร์
| ชื่อ | วัตถุประสงค์ |
|---|---|
Offset | byte offset จุดเริ่มอ่าน นับจากศูนย์ |
Count | จำนวนไบต์ที่จะย้าย โดยถูกจำกัดไม่ให้เกินไบต์ที่เหลือหลังจาก Offset |
Destination | stream ที่รับไบต์ที่คัดลอกมา ต้องไม่เป็น nil |
ค่าที่ส่งกลับ
จำนวนไบต์ที่เขียนลง Destination จริง ๆ จะเป็นศูนย์เมื่อ Offset ติดลบ, Count ไม่เป็นบวก หรือ Offset อยู่ที่หรือเลยขนาดของ source
หมายเหตุการใช้งาน
- raise
EArgumentNilExceptionเมื่อDestinationเป็น nil และ raiseEStreamErrorเมื่อReadAtข้างในรายงานจำนวน chunk ไม่ถูกต้อง - ลูปคัดลอกจะหยุดก่อนเมื่อ
ReadAtคืนไบต์เป็นศูนย์ source ที่สั้นกว่าจึงย้ายออกมาเท่าที่มีอยู่จริง - override ใน source ที่ derive มา เพื่อ stream ข้อมูลจากแคชหรือเครือข่ายโดยไม่ต้องผ่าน buffer กลาง