рдореБрдЭреЗ рдЕрдХреНрд╕рд░ QDataStream рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдирддреАрдЬрддрди, рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХреБрдЫ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред
рдкрд░рд┐рдЪрдп
рдореИрдВрдиреЗ рдмрд╛рд░-рдмрд╛рд░ рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд░рд╛рдп рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдореЗрдВ рдПрдХ рдзрд╛рд░рд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдорджрдж рдореЗрдВ рд▓рд╛рдЗрди
QDatastream :: QDatastream (QByteArray * a, QIODevice :: OpenMode рдореЛрдб) рд╣реИ
рдПрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдПред рдореЛрдб рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, рдХреЛрдИ рдбреЗрдЯрд╛ рд╕реАрдзреЗ QDataStream рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ QBuffer рд╡рд░реНрдЧ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрддреНрддреАрд░реНрдг QByteArray рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ QByteArray рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ QDataStream рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ (рдбреА) рдХреНрд░рдорд╛рдВрдХрди рдкрд░ рд╕рднреА рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рд╕реВрдЪрдХ рд╡рд░реНрддрдорд╛рди рдмрд╛рдЗрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдбреЗрдЯрд╛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдЦрддреЗ рд╕рдордп,
QIODevice рдХрд╛ рдбреЗрдЯрд╛
:: WriteOnly рдХреЛ рдирдП рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
QIODevice рдХреЗ рд▓рд┐рдП :: рдЙрдиреНрд╣реЗрдВ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред QByteArray рдЖрдЬреАрд╡рди рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред
рдкрдврд╝реЛ рд▓рд┐рдЦреЛ
рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдорд╛рдирдХ рдСрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ << рд╕рднреА рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП << рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред
sctruct anyStruct { short sVal; float fVal; double dVal; short Empty; char array[8]; } QDataStream operator <<(QDataStream &out, const anyStruct &any) { out << any.sVal; out << any.fVal; out << any.dVal; out << any.Empty; out.writeRawData(any.array,sizeof(any.array)); return out; }
рдпрд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдПрдХ "рдЬрдЯрд┐рд▓" рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ QDataStream writeRawData (const char * s, int len) рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ ред рд▓реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░реЗрдВред рдЙрд╕реА рддрд░рд╣, рд╣рдо рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдерди рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
QDataStream operator >>(QDataStream &out, anyStruct &any) { out >> any.sVal; out.setFloatingPointPrecision(QDataStream::FloatingPointPrecision); out >> any.fVal; out.setFloatingPointPrecision(QDataStream::DoublePrecision); out >> any.dVal; out.skipRawData(sizeof(any.Empty)); out.ReadRawData(any.array,sizeof(any.array)); return out; }
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди QDataStream :: setFloatingPointPreicy (рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдкреЙрдЗрдВрдЯрдкреНрд░реЗрд╢рд┐рдк рд╕рдЯреАрдХ) рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпреВрдЯреА 4.6 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдЖрдкрдХреЛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд┐рдВрдЧрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓рдкреНрд░реАрд╕реАрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдбрдмрд▓ рдкреНрд░реАрдкреНрд░реЗрд╢рд░ рдбрдмрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕ рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рдкрд╣рд▓рд╛ рд╣реИ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛ << рдФрд░ >> рдРрд╕рд╛ рдХреБрдЫ:
QDataStream operator >>(QDataStream &out, float &val) { if(out. FloatingPointPrecision() != QDataStream:: SinglePrecision) { out.setFloatingPointPrecision(QDataStream::FloatingPointPrecision); out >> val; out.setFloatingPointPrecision(QDataStream::DoublePrecision); } }
рдпрд╛, рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ, рдлреНрд▓реЛрдЯ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрдмрд▓ рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбрдмрд▓рдкреНрд░реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдЖрдЗрдП QDataStream рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ :: SkipRawData (int len) ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рд╕рдордп рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред
рдЕрд▓рдЧ рд╕реЗ, рдЗрд╕реЗ рдЙрдЪреНрдЪ рдмрд┐рдЯ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред QDataStream :: setByteOrder (ByteOrder bo) рд╡рд┐рдзрд┐ рдХреНрд░рдо рд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдмрд╛рдЗрдЯрдСрд░реНрдбрд░ рдХреЗ рд╕рд╛рде :: рдмрд┐рдЧрдЗрдВрдбрд┐рдпрди, рд░рд┐рдХреЙрд░реНрдб рдмрд╛рдЗрдЯ рдЙрдЪреНрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░рдо рд╣реИред рдмрд╛рдЗрдЯрдСрд░реНрдбрд░ рдХреЗ рд╕рд╛рде :: рд▓рд┐рдЯрд┐рд▓рдПрдВрдбрд┐рдпрди, рд░рд┐рдХреЙрд░реНрдб рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред
(рдбреА) рдХреНрдпреВрдЯреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдХреНрд░рдорд┐рдХрд░рдг
рдорд╛рдирдХ C ++ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, QDataStream рдЖрдкрдХреЛ рдХреБрдЫ Qt рд╡рд░реНрдЧ рдЬреИрд╕реЗ QList рдФрд░ QVVant рднреА рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Qt рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЬреБрдбрд╝реА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХреНрд░рдордмрджреНрдз рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ред QDataStream :: setVersion (int v) рд╡рд┐рдзрд┐, рдЬрд╣рд╛рдБ v, Qt рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдлрд┐рд░ рднреА, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЙрди рдЧреБрдгреЛрдВ рдХреЗ рд╡рд░реНрдЧ рдЬреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИрдВ, рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред рдЖрдк рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдЯреНрд░реАрдо QDataStream :: рд╕рдВрд╕реНрдХрд░рдг () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред QHash рдХрдВрдЯреЗрдирд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
#include <QtCore/QCoreApplication> #include <QDataStream> #include <QByteArray> #include <QFile> #include <QString> #include <QHash> #include <QDebug> class simpleClass { public: quint32 a,b; quint32 func(quint32 arg1, quint32 arg2); quint32 getC(); friend QDataStream &operator <<(QDataStream &stream,const simpleClass &sC); friend QDataStream &operator >>(QDataStream &stream, simpleClass &sC); protected: quint32 c; }; inline quint32 simpleClass::func(quint32 arg1, quint32 arg2) { a = arg1; b = arg2; c = a+b; return c; } inline quint32 simpleClass::getC() { return c; } inline QDataStream &operator <<(QDataStream &stream,const simpleClass &sC) // ; { stream << sC.a; stream << sC.b; stream << sC.c; return stream; } inline QDataStream &operator >>(QDataStream &stream, simpleClass &sC) // ; { stream >> sC.a; stream >> sC.b; stream >> sC.c; return stream; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile appFile(QString("filename.data")); appFile.open(QFile::Append); // ; QDataStream inFile(&appFile); // QIODevice; QHash <quint32,simpleClass> hash; // ; for(quint32 i = 0; i < 64; i++) { if(!hash.contains(i)) // , ; { simpleClass sC; // ; sC.func(i,i+10); // ; hash.insert(i,sC); // ; } } inFile.setVersion(QDataStream::Qt_4_8); // Qt, ; inFile << hash; // ; appFile.flush(); // ; appFile.close(); // ; QFile readFile(QString("filename.data")); readFile.open(QFile::ReadOnly); QDataStream outFile(&readFile); outFile.setVersion(QDataStream::Qt_4_8); QHash<quint32,simpleClass> readHash; // ; outFile >> readHash; // ; foreach(quint64 key, readHash.keys()) // : readHash.keys() ; { simpleClass sC = readHash.value(key); // ; qDebug() << "Sum was " << sC.getC(); // ; qDebug() << "Sum is "<< sC.func(key,2*key); // ; } readFile.close(); return a.exec(); }
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдлреНрд▓рд╢ () рдЬреИрд╕реА рдЪреАрдЬрд╝ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓реЗрдЦрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдЙрди рдкрд░ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрдлрд░рд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╖рдп рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреЛ рдмрд▓рдкреВрд░реНрд╡рдХ рдЦрд╛рд▓реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рд╕рд░рд▓ рдХреНрд▓рд╛рд╕ рдХреЛ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП QDataStream рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд╕реАрдзреЗ рдирд┐рдЬреА рд╡рд░реНрдЧреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛ рд╕рдХреЗрдВред рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕ рдпрд╛ рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХрд░рдХреЗ рдмрдЧреАрдЪреЗ рдХреЛ рдмрд╛рдбрд╝ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдорд┐рддреНрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИред рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдлрд╝рд╛рдЗрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдПрдВ, рдХреНрдпреВрдПрдЪрд╢ рдореЗрдВ рднрд░реЗрдВ рдФрд░ рдХреНрдпреВрдЯреА рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓рдХрд░ рднреА рд▓рд┐рдЦреЗрдВред рдкрдврд╝рдиреЗ рдХрд╛ рдХреНрд░рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЙрдЪреНрдЪ рд╢реНрд░реЗрдгреА рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВред рдпрд╣ рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд░рдг рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╕реАрдзреЗ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрд╡рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдзрд╛рд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдПрдВрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рдмрд╛рдж рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред