1

私は次のような列挙型データを持っています:

typedef enum
{
    NULLTYPE = 0U,
    ParameterGetType = 1U,
    ParameterSetType = 2U,
    ParameterStatusType  = 3U,
    EventActionType  = 4U,
    CommandType  = 5U,
    CommandGetType  = 6U,
    CommandSetType  = 7U,
    EquipmentIDGetType   = 15U,
    EquipmentIDSetType   = 16U,
    EquipmentIDStatusType = 17U,
    EventReportGetType  = 18U,
    EventReportSetType  = 19U,
    EventReportStatusType = 20U,
    PeriodicReportType = 21U,
    PeriodicReportGetType  = 22U,
    PeriodicReportSetType  = 23U,
    PeriodicReportStatusType  = 24U,
    CommandResponseType  = 25U,
    CommandResponseGetType  = 26U,
    CommandResponseSetType  = 27U,
    CommandResponseStatusType  = 28U,
    CommandResponseDeletedType  = 29U

}MessageType;

QByteArrayとQFile::write(QByteArray)を使用してバイナリファイルに保存したいのです
が、データの長さとデータの「バイトの分布」の値がわかりません。<br>(データは1ですが、他のバイトの値はゼロになりますか?)
qtに限定されないと思いますが、データをファイルに書き込む方法は?

(短いタイプのデータ(MsgItem-> PIN)の場合、これを行います:)

QByteArray bytes;
bytes.append(((MsgItem->PIN)>>8) & 0xff);
bytes.append((MsgItem->PIN) & 0xff);
MsgFile->write(bytes);
MsgFile->flush();
4

1 に答える 1

0

列挙値を固定サイズの整数に変換し(などを使用<cstdint>uint16_t、必要なバイト順序操作を実行します。

于 2012-12-08T03:49:08.270 に答える