0

文字列 #define で始まる数行のヘッダー ファイルがあります。ここで、必要な情報をすべて取得するために、これらの行を分割する必要があります。文字列の Split 関数を使用して、インデックスを使用して特定の文字列を取得することもできますが、これは本当に安全な方法だとは思いません。

回線には 2 種類あり、最初は「グローバル」回線です。

#define ERR_CAN_WARNING      ERR ( 0 )  // 0x0001
#define ERR_CAN_ERROR        ERR ( 1 )  // 0x0002
#define STAT_OK             0 // Comment
#define STAT_FAIL           1 // Hardwarefehler
#define STAT_ILL            2 // Kommando-/Parameterfehler

特定の行から必要なもの:

  1. #define の後の名前で、ERR か STAT かを決定します
  2. ERR の場合は ERR( ) 内の値が必要で、STAT の場合は名前の後の値が必要です
  3. // の後のテキストである行の説明

要約すると、この例には、ステータス行とエラー行の 2 種類の行があります。

ユニット固有の行:

#define UNIT_STAT_ARMED        8  // Kommando nicht zulässig, weil CCU armiert ist
#define UNIT_STAT_PULSERR      9  // Fehler in Pulsdefinition
#define UNIT_STAT_SEQERR       0x0A  // Parameter sequence passt nicht zur Pulsdefinition
#define UNIT_ERR_SDC_DSSDN   ERR (8 )  // 0x0100 * SDC Shutdown durch Überstrom während Test
#define UNIT_ERR_SDC_HKSDN   ERR (9 )  // 0x0200 SDC Housekeeping Shutdown
#define UNIT_ERR_SDC_TLMTSDN ERR (10 ) // 0x0400 SDC Shutdown wg Zeitüberschreitung während Test
#define UNIT_ERR_SDC_SYSSDN  ERR (11 ) // 0x0800 * SDC Shutdown wg Anforderung durch CCU

特定の行から必要なもの:

  1. #define の後の UNIT である Unit の名前
  2. UNIT の後に示される ERR または STAT のどちらであるかを決定します。
  3. ERR の場合は ERR( ) 内の値が必要で、STAT の場合は名前の後の値が必要です
  4. // の後のテキストである行の説明

文字列を分割した後にインデックスが変更される可能性があるため、安全でない Split 関数を使用せずにこれを処理する良い方法はありますか?

4

0 に答える 0