توجه: تمام کارکردهای این کلاس مجدداً مورد استفاده قرار می گیرند.
انواع عمومی
| ارباب | با تعیین کردن |
| ارباب | شناور شناور |
| ارباب | وضعیت |
| ارباب | نسخه |
توابع عمومی
| qdatastream (const qbytearray & a) |
| qDataStream (qbytearray * a ، qiodevicebase :: حالت OpenMode) |
| qDatastream (qiodevice * d) |
| qdatastream () |
| ~qdatastream () |
| خالی | سقط جنین () |
| غوغا | atend () const |
| qdatastream :: باین | بایتن () const |
| غوغا | تعهد () |
| qiodevice * | دستگاه () |
| qdatastream :: floationpointpricision | flationpointprecision () const |
| qdatastream & | readbytes (char *& s ، uint & l) |
| در نظر گرفتن | readrawdata (char * s ، int len) |
| خالی | resetStatus () |
| خالی | RollbackTransaction () |
| خالی | setByteorder (qdatastream :: bytorder bo) |
| خالی | setDevice (qiodevice * d) |
| خالی | SetFloatingPointPrecision (QDataStream :: FloatingPointPointPrecision) |
| خالی | setStatus (qdatastream :: وضعیت وضعیت) |
| خالی | setVersion (int v) |
| در نظر گرفتن | skiprawdata (int len) |
| خالی | StartTransaction () |
| qdatastream :: وضعیت | وضعیت () ثابت |
| در نظر گرفتن | نسخه () const |
| qdatastream & | WritBytes (const char * s ، uint len) |
| در نظر گرفتن | Writerawdata (const char * s ، int len) |
| qdatastream & | اپراتور (qint8 i) |
| qdatastream & | اپراتور (Quint8 I) |
| qdatastream & | اپراتور (QINT16 I) |
| qdatastream & | اپراتور (Quint16 I) |
| qdatastream & | اپراتور (QINT32 I) |
| qdatastream & | اپراتور (Quint32 I) |
| qdatastream & | اپراتور (qint64 i) |
| qdatastream & | اپراتور (Quint64 I) |
| qdatastream & | اپراتور (std :: nullptr_t ptr) |
| qdatastream & | اپراتور (بول اول) |
| qdatastream & | اپراتور (float f) |
| qdatastream & | اپراتور (دو برابر) |
| qdatastream & | اپراتور (const char * s) |
| qdatastream & | اپراتور (char16_t c) |
| qdatastream & | اپراتور (char32_t c) |
| qdatastream & | operator>>(qint8 و i) |
| qdatastream & | operator>>(Quint8 و i) |
| qdatastream & | operator>>(QINT16 و I) |
| qdatastream & | operator>>(Quint16 و i) |
| qdatastream & | operator>>(QINT32 و I) |
| qdatastream & | operator>>(Quint32 و i) |
| qdatastream & | operator>>(QINT64 و I) |
| qdatastream & | operator>>(Quint64 و i) |
| qdatastream & | operator>>(std :: nullptr_t & ptr) |
| qdatastream & | operator>>(بول و من) |
| qdatastream & | operator>>(Float & F) |
| qdatastream & | operator>>(Double & f) |
| qdatastream & | operator>>(کاراکتر و ها) |
| qdatastream & | operator>>(char16_t & c) |
| qdatastream & | operator>>(char32_t & c) |
غیر عضو مرتبط
| qdatastream & | اپراتور (qdatastream & out ، const std :: جفت و جفت) |
| qdatastream & | operator>>(qdatastream & in ، std :: جفت و جفت) |
توصیف همراه با جزئیات
جریان داده یک جریان باینری از اطلاعات رمزگذاری شده است که 100 ٪ مستقل از سیستم عامل رایانه میزبان ، CPU یا سفارش بایت است. به عنوان مثال ، یک جریان داده ای که توسط یک رایانه شخصی تحت ویندوز نوشته شده است را می توان توسط یک Sun SPARC در حال اجرا Solaris خواند.
همچنین می توانید از یک جریان داده برای خواندن/نوشتن داده های باینری غیرمجاز خام استفاده کنید. اگر می خواهید یک جریان ورودی "تجزیه" داشته باشید ، به QTextStream مراجعه کنید.
کلاس qdatastream سریال سازی انواع داده های اصلی C ++ ، مانند کاراکتر ، کوتاه ، int ، char * و غیره را پیاده سازی می کند. سریال سازی داده های پیچیده تر با شکستن داده ها در واحدهای بدوی انجام می شود.
یک جریان داده از نزدیک با یک Qiodevice همکاری می کند. یک Qiodevice یک رسانه ورودی/خروجی را نشان می دهد که می تواند داده ها را از آن بخواند و داده ها را بنویسد. کلاس QFile نمونه ای از دستگاه I/O است.
مثال (داده های باینری را به یک جریان بنویسید):
مثال (داده های باینری را از یک جریان بخوانید):
هر موردی که به جریان نوشته شده است در قالب باینری از پیش تعریف شده نوشته شده است که بسته به نوع مورد متفاوت است. انواع QT پشتیبانی شده شامل QBrush ، Qcolor ، QDatetime ، Qfont ، QPixMap ، QString ، Qvariant و بسیاری دیگر است. برای لیست کامل کلیه انواع QT که از جریان داده ها پشتیبانی می کنند ، به انواع داده های QT Serializing مراجعه کنید.
برای اعداد صحیح بهتر است همیشه برای نوشتن به یک نوع عدد صحیح QT ریخته شود و دوباره به همان نوع عدد صحیح QT بخوانید. این تضمین می کند که شما به اندازه مورد نظر خود عدد صحیح را بدست آورید و شما را از تفاوت کامپایلر و پلتفرم عایق بندی می کند.
شمارش ها را می توان از طریق qDataStream بدون نیاز به تعریف دستی اپراتورهای جریان ، سریال کرد. کلاسهای enum با استفاده از اندازه اعلام شده سریال می شوند.
برای مثال ، یک رشته char * به عنوان یک عدد صحیح 32 بیتی برابر با طول رشته از جمله بایت " 0" نوشته شده است ، و به دنبال آن تمام شخصیت های رشته از جمله بایت " 0". هنگام خواندن یک رشته char * ، 4 بایت خوانده می شود تا مقدار طول 32 بیتی ایجاد شود ، بنابراین بسیاری از کاراکترها برای رشته char * از جمله ترمیناتور " 0" خوانده می شوند.
دستگاه I/O اولیه معمولاً در سازنده تنظیم می شود ، اما با SetDevice () قابل تغییر است. اگر به انتهای داده ها رسیده باشید (یا در صورت عدم وجود دستگاه I/O) ATEND () درست باز می گردد.
نسخه سازی
قالب باینری QDataStream از QT 1. 0 تکامل یافته است ، و به احتمال زیاد در حال تحول در جهت منعکس کننده تغییرات انجام شده در QT است. هنگام وارد کردن یا خروجی انواع پیچیده ، بسیار مهم است که مطمئن شوید از نسخه مشابه جریان (نسخه ()) برای خواندن و نوشتن استفاده می شود. اگر به سازگاری رو به جلو و عقب نیاز دارید ، می توانید شماره نسخه را در برنامه کدگذاری کنید:
اگر در حال تولید یک فرمت داده باینری جدید ، مانند قالب پرونده برای اسناد ایجاد شده توسط برنامه خود هستید ، می توانید از QDataStream برای نوشتن داده ها در یک قالب قابل حمل استفاده کنید. به طور معمول ، شما یک هدر مختصر که حاوی یک رشته جادویی و یک شماره نسخه است ، می نویسید تا خود را برای گسترش آینده فراهم کنید. مثلا:
سپس آن را با:
می توانید هنگام سریال سازی داده ها از کدام ترتیب بایت استفاده کنید. تنظیم پیش فرض Big-endian است (MSB اول). تغییر آن به اندیشه کوچک ، قابلیت حمل را می شکند (مگر اینکه خواننده نیز به اندیشه کوچک تغییر کند). توصیه می کنیم این تنظیمات را حفظ کنید مگر اینکه الزامات خاصی داشته باشید.
خواندن و نوشتن داده های باینری خام
ممکن است بخواهید داده های باینری خام خود را مستقیماً از جریان داده بخوانید و بنویسید. داده ها ممکن است از جریان به یک کاراکتر از قبل با استفاده از readrawdata () خوانده شوند. به طور مشابه داده ها را می توان با استفاده از WriterAwdata () به جریان نوشت. توجه داشته باشید که هرگونه رمزگذاری/رمزگشایی داده ها باید توسط شما انجام شود.
یک جفت عملکرد مشابه Readbytes () و WritBytes () است. اینها با همتایان خام خود به شرح زیر متفاوت است: readbytes () quint32 را می خواند که طول داده های خوانده شده در نظر گرفته می شود ، پس از آن تعداد بایت ها در کاراکتر پیش ساخته * خوانده می شود. WritBytes () quint32 را که حاوی طول داده ها است ، می نویسد و به دنبال آن داده ها. توجه داشته باشید که هرگونه رمزگذاری/رمزگشایی داده ها (جدا از quint32 طول) باید توسط شما انجام شود.
خواندن و نوشتن کلاس های مجموعه QT
کلاس های کانتینر QT همچنین می توانند به یک QDataStream سریال شوند. این موارد شامل Qlist ، Qset ، Qhash و QMAP است. اپراتورهای جریان به عنوان غیر عضو کلاس ها اعلام می شوند.
خواندن و نوشتن کلاسهای دیگر QT
علاوه بر اپراتورهای جریان بیش از حد که در اینجا مستند شده است ، هر کلاس QT که ممکن است بخواهید به یک QDataStream سریال کنید ، اپراتورهای جریان مناسبی دارند که به عنوان غیر عضو کلاس اعلام شده اند:
به عنوان مثال ، در اینجا اپراتورهای جریان به عنوان غیر عضو کلاس QIMAGE اعلام شده اند:
برای دیدن اینکه آیا کلاس QT مورد علاقه شما اپراتورهای جریان مشابهی را تعریف کرده است ، بخش غیر عضو مربوط به صفحه اسناد کلاس را بررسی کنید.
با استفاده از معاملات خواندن
هنگامی که یک جریان داده بر روی یک دستگاه ناهمزمان کار می کند ، بخش های داده می توانند به موقع به نقاط دلخواه برسند. کلاس QDataStream مکانیسم معامله را پیاده سازی می کند که امکان خواندن داده ها را به صورت اتمی با یک سری از اپراتورهای جریان فراهم می کند. به عنوان نمونه ، می توانید با استفاده از یک معامله در یک شکاف متصل به سیگنال ReadyRead () ، خواندن های ناقص را از یک سوکت کنترل کنید:
اگر هیچ بسته ای کامل دریافت نشود ، این کد جریان را به موقعیت اولیه باز می گرداند ، پس از آن باید منتظر رسیدن داده های بیشتر باشید.
مستندات نوع عضو
enum qdatastream :: بایت
سفارش بایت مورد استفاده برای خواندن/نوشتن داده ها.
| ثابت | ارزش | شرح |
| qdatastream :: bigendian | qsysinfo :: bigendian | مهمترین بایت اول (پیش فرض) |
| qdatastream :: Littleendian | qsysinfo :: Littledian | حداقل بایت قابل توجه اول |
enum qdatastream :: floationpointprecision
دقت اعداد نقطه شناور مورد استفاده برای خواندن/نوشتن داده ها. این تنها در صورتی خواهد بود که نسخه جریان داده QT_4_6 یا بالاتر باشد.
هشدار: دقت نقطه شناور باید روی همان مقدار که می نویسد و شیء که جریان داده را می خواند ، روی همان مقدار تنظیم شود.
| ثابت | ارزش | شرح |
| qdatastream :: یکپارچه سازی | 0 | تمام شماره های نقطه شناور در جریان داده دارای دقت 32 بیتی هستند. |
| qdatastream :: دو برابر | 1 | تمام شماره های نقطه شناور در جریان داده دارای دقت 64 بیتی هستند. |
enum qdatastream :: وضعیت
این Enum وضعیت فعلی جریان داده را توصیف می کند.
| ثابت | ارزش | شرح |
| qdatastream :: خوب | 0 | جریان داده به طور عادی کار می کند. |
| qdatastream :: readpastend | 1 | جریان داده از انتهای داده ها در دستگاه زیرین خوانده است. |
| qdatastream :: readCorruptData | 2 | جریان داده داده های فاسد را خوانده است. |
| qdatastream :: writefailed | 3 | جریان داده نمی تواند به دستگاه زیرین بنویسد. |
enum qdatastream :: نسخه
این Enum مترادف نمادین را برای شماره نسخه های فرمت سریال سازی داده ها فراهم می کند.
| ثابت | ارزش | شرح |
| qdatastream :: qt_1_0 | 1 | نسخه 1 (qt 1. x) |
| qdatastream :: qt_2_0 | 2 | نسخه 2 (QT 2. 0) |
| qdatastream :: qt_2_1 | 3 | نسخه 3 (Qt 2. 1 ، 2. 2 ، 2. 3) |
| qdatastream :: qt_3_0 | 4 | نسخه 4 (QT 3. 0) |
| qdatastream :: qt_3_1 | 5 | نسخه 5 (Qt 3. 1 ، 3. 2) |
| qdatastream :: qt_3_3 | 6 | نسخه 6 (QT 3. 3) |
| qdatastream :: qt_4_0 | 7 | نسخه 7 (Qt 4. 0 ، Qt 4. 1) |
| qdatastream :: qt_4_1 | qt_4_0 | نسخه 7 (Qt 4. 0 ، Qt 4. 1) |
| qdatastream :: qt_4_2 | 8 | نسخه 8 (QT 4. 2) |
| qdatastream :: qt_4_3 | 9 | نسخه 9 (QT 4. 3) |
| qdatastream :: qt_4_4 | 10 | نسخه 10 (QT 4. 4) |
| qdatastream :: qt_4_5 | 11 | نسخه 11 (QT 4. 5) |
| qdatastream :: qt_4_6 | 12 | نسخه 12 (Qt 4. 6 ، Qt 4. 7 ، Qt 4. 8) |
| qdatastream :: qt_4_7 | qt_4_6 | همان QT_4_6. |
| qdatastream :: qt_4_8 | qt_4_7 | همان QT_4_6. |
| qdatastream :: qt_4_9 | qt_4_8 | همان QT_4_6. |
| qdatastream :: qt_5_0 | 13 | نسخه 13 (QT 5. 0) |
| qdatastream :: qt_5_1 | 14 | نسخه 14 (Qt 5. 1) |
| qdatastream :: qt_5_2 | 15 | نسخه 15 (QT 5. 2) |
| qdatastream :: qt_5_3 | qt_5_2 | همان QT_5_2 |
| qdatastream :: qt_5_4 | 16 | نسخه 16 (QT 5. 4) |
| qdatastream :: qt_5_5 | qt_5_4 | همان QT_5_4 |
| qdatastream :: qt_5_6 | 17 | نسخه 17 (QT 5. 6) |
| qdatastream :: qt_5_7 | qt_5_6 | همان QT_5_6 |
| qdatastream :: qt_5_8 | qt_5_7 | همان QT_5_6 |
| qdatastream :: qt_5_9 | qt_5_8 | همان QT_5_6 |
| qdatastream :: qt_5_10 | qt_5_9 | همان QT_5_6 |
| qdatastream :: qt_5_11 | qt_5_10 | همان QT_5_6 |
| qdatastream :: qt_5_12 | 18 | نسخه 18 (QT 5. 12) |
| qdatastream :: qt_5_13 | 19 | نسخه 19 (QT 5. 13) |
| qdatastream :: qt_5_14 | qt_5_13 | همان QT_5_13 |
| qdatastream :: qt_5_15 | qt_5_14 | همان QT_5_13 |
| qdatastream :: qt_6_0 | 20 | نسخه 20 (QT 6. 0) |
| qdatastream :: qt_6_1 | qt_6_0 | همان QT_6_0 |
| qdatastream :: qt_6_2 | qt_6_0 | همان QT_6_0 |
| qdatastream :: qt_6_3 | qt_6_0 | همان QT_6_0 |
| qdatastream :: qt_6_4 | qt_6_0 | همان QT_6_0 |
مستند سازی عملکرد عضو
qdatastream :: qdatastream (const qbytearray & a)
یک جریان داده فقط خواندنی را ایجاد می کند که بر روی آرایه بایت کار می کند. اگر می خواهید به یک آرایه بایت بنویسید ، از qdatastream (qbytearray*، int) استفاده کنید.
از آنجا که qbytearray یک زیر کلاس Qiodevice نیست ، در داخل یک QBuffer برای بسته بندی آرایه بایت ایجاد می شود.
qdatastream :: qdatastream (qbytearray * a ، qiodevicebase :: mode openmode)
یک جریان داده ای را ایجاد می کند که بر روی یک آرایه بایت کار می کند ، a. حالت نحوه استفاده از دستگاه را توصیف می کند.
از طرف دیگر ، اگر می خواهید از یک آرایه بایت بخوانید ، می توانید از qdatastream (const Qbytearray &) استفاده کنید.
از آنجا که qbytearray یک زیر کلاس Qiodevice نیست ، در داخل یک QBuffer برای بسته بندی آرایه بایت ایجاد می شود.
qdatastream :: qdatastream (qiodevice * d)
یک جریان داده را ایجاد می کند که از دستگاه I/O استفاده می کند.
qdatastream :: qdatastream ()
یک جریان داده را ایجاد می کند که دستگاه I/O ندارد.
qdatastream ::~qdatastream ()
جریان داده را از بین می برد.
ویرانگر بر دستگاه I/O فعلی تأثیر نمی گذارد ، مگر اینکه یک دستگاه داخلی I/O (به عنوان مثال Qbuffer) باشد که یک QBytearray را که در سازنده منتقل می شود ، پردازش می کند ، در این صورت دستگاه I/O داخلی از بین می رود.
[از 5. 7] void qdatastream :: aborttransaction ()
معامله خوانده شده را قطع می کند.
این عملکرد معمولاً برای دور انداختن معامله پس از خطاهای پروتکل سطح بالاتر یا از بین رفتن همگام سازی جریان استفاده می شود.
در صورت فراخواندن معامله داخلی ، سقط جنین به بیرونی ترین معامله واگذار می شود و متعاقباً معاملات داخلی شروع به شکست می کنند.
برای بیرونی ترین معامله ، نقطه ترمیم و هرگونه داده کپی داخلی جریان را کنار می گذارد. بر موقعیت خواندن فعلی جریان تأثیر نمی گذارد.
وضعیت جریان داده را به
| ثابت | شرح |
| readCorruptData | . |
این عملکرد در QT 5. 7 معرفی شد.
bool qdatastream :: atend () const
اگر دستگاه I/O به موقعیت انتهایی (پایان جریان یا پرونده) برسد یا در صورت عدم وجود دستگاه I/O ، صحیح است. در غیر این صورت نادرست است.
qdatastream :: بایت qdatastream :: byteorder () const
تنظیم سفارش بایت فعلی - یا Bigendian یا Littleendian را برمی گرداند.
[از 5. 7] BOOL QDataStream :: CommitTransaction ()
معامله خوانده شده را تکمیل می کند. در صورت عدم وجود خطای خوانده شده در طول معامله ، صحیح باز می گردد. در غیر این صورت نادرست است.
در صورت فراخواندن یک معامله داخلی ، تعهد به تعویق می افتد تا بیرونی ترین تعهد () ، RollbackTransaction () یا تماس با سقط جنین () اتفاق بیفتد.
در غیر این صورت ، اگر وضعیت جریان نشانگر خواندن گذشته از انتهای داده ها باشد ، این عملکرد داده های جریان را به نقطه تماس startTransaction () بازیابی می کند. هنگامی که این وضعیت رخ می دهد ، باید منتظر رسیدن داده های بیشتر باشید ، پس از آن یک معامله جدید را شروع می کنید. اگر جریان داده داده های فاسد را خوانده باشد یا هر یک از معاملات داخلی سقط شود ، این عملکرد معامله را کاهش می دهد.
این عملکرد در QT 5. 7 معرفی شد.
qiodevice *qdatastream :: دستگاه () const
اگر دستگاه در حال حاضر تنظیم نشده باشد ، دستگاه I/O را در حال حاضر تنظیم می کند ، یا NULLPTR را تنظیم می کند.
qdatastream :: floatingpointprecision qdatastream :: floationpointpointpecision () const
دقت نقطه شناور جریان داده را برمی گرداند.
qdatastream & qdatastream :: readbytes (char *& s ، uint & l)
بافر S را از جریان می خواند و مرجع به جریان را برمی گرداند.
بافر S با استفاده از جدید [] اختصاص می یابد. آن را با اپراتور حذف [] نابود کنید.
پارامتر L روی طول بافر تنظیم شده است. اگر رشته خوانده شده خالی باشد ، L روی 0 تنظیم می شود و S روی NULLPTR تنظیم می شود.
قالب سریال سازی ابتدا یک مشخصه طول Quint32 است ، سپس L بایت داده ها.
int qdatastream :: readrawdata (char * s ، int len)
در بیشتر بایت های لن از جریان به S می خواند و تعداد بایت های خوانده شده را برمی گرداند. اگر خطایی رخ دهد ، این عملکر د-1 برمی گردد.
بافر باید از قبل استفاده شود. داده ها رمزگشایی نمی شوند.
void qdatastream :: resetStatus ()
وضعیت جریان داده را مجدداً تنظیم می کند.
[از 5. 7] void qdatastream :: RollbackTransaction ()
یک معامله خوانده شده را برمی گرداند.
این عملکرد معمولاً برای بازگرداندن معامله در هنگام تشخیص ناقص قبل از انجام معامله استفاده می شود.
در صورت فراخوانی با معامله داخلی ، بازگشت به بیرونی ترین معامله واگذار می شود و متعاقباً معاملات داخلی شروع می شود و مجبور به شکست می شوند.
برای بیرونی ترین معامله ، داده های جریان را به نقطه تماس startTransaction () بازیابی می کند. اگر جریان داده داده های فاسد را خوانده باشد یا هر یک از معاملات داخلی سقط شود ، این عملکرد معامله را کاهش می دهد.
اگر عملیات جریان قبلی موفقیت آمیز بود ، وضعیت جریان داده را به
این عملکرد در QT 5. 7 معرفی شد.
void qdatastream :: setbyteorder (qdatastream :: bytorder bo)
سفارش بایت سریال سازی را به BO تنظیم می کند.
تنظیم پیش فرض بزرگ و بزرگ است. توصیه می کنیم این تنظیمات را ترک کنید مگر اینکه الزامات خاصی داشته باشید.
void qdatastream :: setDevice (qiodevice * d)
void qdatastream :: setDevice (qiodevice *d)
دستگاه I/O را به D تنظیم می کند ، که می تواند NULLPTR را به دستگاه I/O فعلی منتقل کند.
void qdatastream :: setFloatingPointPrecision (qdatastream :: FloatingPointPointPrecision)
دقت نقطه شناور جریان داده را با دقت تنظیم می کند. اگر دقت نقطه شناور دو برابر باشد و نسخه جریان داده QT_4_6 یا بالاتر باشد ، تمام شماره های نقطه شناور با دقت 64 بیتی نوشته و خوانده می شوند. اگر دقت نقطه شناور یکپارچه باشد و نسخه QT_4_6 یا بالاتر باشد ، تمام شماره های نقطه شناور با دقت 32 بیتی نوشته و خوانده می شوند.
برای نسخه های قبل از QT_4_6 ، دقت اعداد نقطه شناور در جریان داده بستگی به اپراتور جریان دارد.
توجه داشته باشید که این خاصیت بر سریال سازی یا ترکیدن نمونه های Qfloat16 تأثیر نمی گذارد.
هشدار: این ویژگی باید روی همان مقدار که می نویسد و شیء که جریان داده را می خواند ، روی همان مقدار تنظیم شود.
void qdatastream :: setstatus (qdatastream :: وضعیت وضعیت)
وضعیت جریان داده را به وضعیت داده شده تنظیم می کند.
تماس های بعدی به SetStatus () تا زمانی که ResetStatus () فراخوانی شود ، نادیده گرفته می شود.
void qdatastream :: setVersion (int v)
شماره نسخه قالب سریال سازی داده را روی V ، مقدار نسخه Enum تنظیم می کند.
اگر از نسخه فعلی QT استفاده می کنید ، لازم نیست نسخه ای را تنظیم کنید ، اما برای قالب های باینری سفارشی خود توصیه می کنیم که انجام دهید. در توضیحات مفصل ، نسخه را مشاهده کنید.
برای قرار دادن عملکرد جدید ، قالب سریال سازی DataStream برخی از کلاس های QT در برخی از نسخه های QT تغییر کرده است. اگر می خواهید داده هایی را که توسط نسخه قبلی QT ایجاد شده است بخوانید ، یا داده هایی را بنویسید که توسط برنامه ای که با نسخه قبلی QT تهیه شده است ، می توانید بخوانید ، از این عملکرد برای تغییر قالب سریال سازی استفاده شده توسط QDataStream استفاده کنید.
Enum نسخه ثابت های نمادین را برای نسخه های مختلف QT فراهم می کند. مثلا:
int qdatastream :: skiprawdata (int len)
بایت های لن را از دستگاه رد می کند. تعداد بایت ها را در واقع پرش کرده ی ا-1 بر روی خطا برمی گرداند.
این معادل فراخوانی readrawdata () بر روی بافر با طول لن و نادیده گرفتن بافر است.
[از 5. 7] void qdatastream :: startTransaction ()
معامله جدید خواندن را در جریان شروع می کند.
یک نقطه بازگردان را در دنباله عملیات خواندن تعریف می کند. برای دستگاه های دنباله ای ، داده های خوانده شده در داخل کپی می شوند تا در صورت خواندن ناقص ، بازیابی شود. برای دستگاه های دسترسی تصادفی ، این عملکرد موقعیت فعلی جریان را ذخیره می کند. برای پایان دادن به معامله فعلی ، CommitTransaction () ، RollbackTransaction () یا abortTransaction () را فراخوانی کنید.
پس از شروع معامله ، تماس های بعدی به این عملکرد باعث بازگشتی معامله می شود. معاملات داخلی به عنوان نمایندگان بیرونی ترین معامله عمل می کند (یعنی وضعیت عملیات خواندن را به بیرونی ترین معامله گزارش دهید ، که می تواند موقعیت جریان را بازگرداند).
توجه: بازگرداندن به نقطه تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو تو دريد ، پشتیبانی نمی شود.
هنگامی که خطایی در طی یک معامله رخ می دهد (از جمله عدم موفقیت معامله داخلی) ، خواندن از جریان داده به حالت تعلیق در می آید (کلیه عملیات خواندن بعدی مقادیر خالی/صفر را برمی گرداند) و معاملات داخلی بعدی مجبور به شکست می شوند. شروع یک معامله خارجی جدید از این حالت بهبود می یابد. این رفتار باعث می شود که هر عملیات خوانده شده به طور جداگانه ، خطا را بررسی کنید.
این عملکرد در QT 5. 7 معرفی شد.
qdatastream :: وضعیت qdatastream :: وضعیت () const
وضعیت جریان داده را برمی گرداند.
int qdatastream :: نسخه () const
شماره نسخه قالب سریال سازی داده را برمی گرداند.
qdatastream & qdatastream :: writebytes (const char * s ، uint len)
طول مشخصات طول لن و بافر را به جریان می نویسد و مرجع به جریان را برمی گرداند.
LEN به عنوان یک Quint32 سریال شده است و پس از آن بایت لن از s. توجه داشته باشید که داده ها رمزگذاری نشده اند.
int qdatastream :: writerawdata (const char * s ، int len)
بایت های لن را از S به جریان می نویسد. تعداد بایت ها را که در واقع نوشته شده است ، ی ا-1 بر روی خطا برمی گرداند. داده ها رمزگذاری نشده اند.
qdatastream & qdatastream :: operatori)
من یک بایت امضا شده را به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
من یک بایت بدون امضا را به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
من یک عدد صحیح 16 بیتی امضا شده را به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
یک عدد صحیح 16 بیتی امضا نشده ، من ، به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
یک عدد صحیح 32 بیتی امضا شده ، من ، به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
یک عدد صحیح بدون امضا ، من ، به جریان به عنوان یک عدد صحیح 32 بیتی بدون امضا (Quint32) می نویسد. مرجع به جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
من یک عدد صحیح 64 بیتی امضا شده ، من را به جریان می نویسد و مرجع جریان را برمی گرداند.
qdatastream & qdatastream :: operatori)
این یک تابع پربار است.
یک عدد صحیح 64 بیتی امضا نشده ، من ، به جریان می نویسد و مرجع جریان را برمی گرداند.
[از 5. 9] QDataStream & QDataStream :: OperatorPtr)
این یک تابع پربار است.
نوشتن یک std :: nullptr_t ، ptr ، به جریان را شبیه سازی می کند و یک مرجع به جریان را برمی گرداند. این عملکرد در واقع چیزی را به جریان نمی نویسد ، زیرا مقادیر Nullptr_T به عنوان 0 بایت ذخیره می شوند.
این عملکرد در QT 5. 9 معرفی شد.
qdatastream & qdatastream :: operatori)
من یک مقدار بولی را به جریان می نویسد. مرجع به جریان را برمی گرداند.
qdatastream & qdatastream :: operatorf)
این یک تابع پربار است.
با استفاده از فرمت استاندارد IEEE 754 ، یک شماره نقطه شناور ، F را به جریان می نویسد. مرجع به جریان را برمی گرداند.
qdatastream & qdatastream :: operatorf)
این یک تابع پربار است.
با استفاده از فرمت استاندارد IEEE 754 ، یک شماره نقطه شناور ، F را به جریان می نویسد. مرجع به جریان را برمی گرداند.
qdatastream & qdatastream :: اپراتورها)
این یک تابع پربار است.
رشته های خاتمه یافته ' 0 را به جریان می نویسد و مرجع به جریان را برمی گرداند.
رشته با استفاده از WritingBytes () سریالی شده است.
[از 6. 0] qdatastream & qdatastream :: operatorc)
این یک تابع پربار است.
یک شخصیت ، c ، به جریان می نویسد. مرجع به جریان را برمی گرداند
این عملکرد در QT 6. 0 معرفی شد.
[از 6. 0] qdatastream & qdatastream :: operatorc)
این یک تابع پربار است.
یک شخصیت ، c ، به جریان می نویسد. مرجع به جریان را برمی گرداند
این عملکرد در QT 6. 0 معرفی شد.
QDataStream &QDataStream:: operator>>(qint8 و i)
یک بایت امضا شده از جریان را به I می خواند و مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Quint8 و i)
این یک تابع پربار است.
یک بایت بدون امضا از جریان به من می خواند و مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(QINT16 و I)
این یک تابع پربار است.
یک عدد صحیح 16 بیتی امضا شده از جریان را به I می خواند و مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Quint16 و i)
این یک تابع پربار است.
یک عدد صحیح 16 بیتی امضا نشده از جریان را به I می خواند و یک مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(QINT32 و I)
این یک تابع پربار است.
یک عدد صحیح 32 بیتی امضا شده از جریان را به I می خواند و مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Quint32 و i)
این یک تابع پربار است.
یک عدد صحیح 32 بیتی امضا نشده از جریان را به I می خواند و یک مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(QINT64 و I)
این یک تابع پربار است.
یک عدد صحیح 64 بیتی امضا شده از جریان را به I می خواند و مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Quint64 و i)
این یک تابع پربار است.
یک عدد صحیح 64 بیتی امضا نشده از جریان ، به I می خواند و مرجع به جریان را برمی گرداند.
[since 5.9] QDataStream &QDataStream:: operator>>(std :: nullptr_t & ptr)
این یک تابع پربار است.
خواندن یک std :: nullptr_t از جریان به PTR را شبیه سازی می کند و مرجع را به جریان برمی گرداند. این عملکرد در واقع چیزی از جریان نمی خواند ، زیرا مقادیر NULLPTR_T به عنوان 0 بایت ذخیره می شوند.
این عملکرد در QT 5. 9 معرفی شد.
QDataStream &QDataStream:: operator>>(بول و من)
یک مقدار بولی را از جریان به من می خواند. مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Float & F)
این یک تابع پربار است.
با استفاده از فرمت استاندارد IEEE 754 ، شماره نقطه شناور را از جریان به F می خواند. مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(Double & f)
این یک تابع پربار است.
با استفاده از فرمت استاندارد IEEE 754 ، شماره نقطه شناور را از جریان به F می خواند. مرجع به جریان را برمی گرداند.
QDataStream &QDataStream:: operator>>(کاراکتر و ها)
این یک تابع پربار است.
رشته های خاتمه یافته ' 0 را از جریان می خواند و مرجع را به جریان برمی گرداند.
رشته با استفاده از ReadBytes () از بین می رود.
فضای رشته با استفاده از [] جدید اختصاص می یابد - تماس گیرنده باید آن را با حذف [] از بین ببرد.
[since 6.0] QDataStream &QDataStream:: operator>>(char16_t & c)
این یک تابع پربار است.
یک کاراکتر عرض 16bit را از جریان به C می خواند و مرجع جریان را برمی گرداند.
این عملکرد در QT 6. 0 معرفی شد.
[since 6.0] QDataStream &QDataStream:: operator>>(char32_t & c)
این یک تابع پربار است.
یک شخصیت گسترده 32bit را از جریان به C می خواند و یک مرجع به جریان را برمی گرداند.
این عملکرد در QT 6. 0 معرفی شد.
غیر عضو مرتبط
[از 6. 0] الگوی qdatastream & operatorout ، const std :: جفتو جفت)
جفت جفت را برای پخش کردن می نویسد.
این عملکرد برای اجرای اپراتور به انواع T1 و T2 نیاز دارد
این عملکرد در QT 6. 0 معرفی شد.
[since 6.0] template QDataStream & operator>>(qdatastream & in ، std :: جفتو جفت)
یک جفت از جریان به صورت جفت می خواند.
This function requires the T1 and T2 types to implement operator>>() .
این عملکرد در QT 6. 0 معرفی شد.
© 2022 شرکت QT Ltd. Ltd. مشارکتهای مستندات موجود در اینجا کپی رایت صاحبان مربوطه آنها است. مستندات ارائه شده در اینجا تحت شرایط مجوز مستندات رایگان GNU نسخه 1. 3 که توسط بنیاد نرم افزار رایگان منتشر شده است ، مجوز دارد. QT و آرم های مربوطه علائم تجاری شرکت QT Ltd. در فنلاند و/یا سایر کشورها در سراسر جهان هستند. تمام علائم تجاری دیگر متعلق به صاحبان مربوطه است.
فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید
برچسب :
نویسنده : احمد قانع پور
بازدید : 48
تاريخ : چهارشنبه
27 ارديبهشت
1402 ساعت: 16:13