ورود

View Full Version : سوال: قراردادن فایل در یک متغییر



htabesh
پنج شنبه 24 مرداد 1387, 17:14 عصر
برای ارسال یک فایل از طریق Bluetooth دستور زیر هست :


(send ( int sock , const void * buf , size t len , int flags

For send, the next two parameters should be a pointer to a buffer

containing the data to send and the amount of the buffer to send, in bytes

که آرگومان دوم یک اشاره گر به بافری است که شامل فایلی است که می خواهد ارسال شود؟؟ :متفکر: منظور از این عبارت چیه؟ باید چی کار کنم.؟

sasan_vm
شنبه 26 مرداد 1387, 07:51 صبح
معمولا برای دسترسی به محتویات یک فایل ابتدا باید آن فایل را open کنید و اطلا عات مورد نیاز را بخوانید،
که با کپی کردن محتویات فایل در یک آدرس از حافظه (buffer) صورت می گیرد. روش کار:
1- باز کردن فایل
2- تخصیص حافظه به مقدار مورد نیاز (allocate memory)
3- کپی اطلاعات از فایل به حافظه

فرضا برای ارسال کامل یک فایل می توان از کد زیر استفاده کرد:


TFileStream * File;
TMemoryStream * Buff;
__try
{
File = new TFileStream("FileName", fmOpenRead);
Buff = new TMemoryStream;
Buff->CopyFrom(File, File->Size);
Buff->Position = 0;
// call Your function
send ( sock , Buff->Memory , Buff->Size , flags );
}
__finally
{
delete File;
delete Buff;
}