我正在编写一段代码,用于将 ASN.1 BER 二进制转换为 CSV 文本。我的所有 ASN 类型都有(相当大的)结构,这些结构要写入输出文本文件。现在我可以使用正常的方法一个一个地编写元素(因为输出文件必须是纯文本),但我正在寻找一些聪明的方法来处理这个问题。我希望我能得到一些提示/技巧和建议来做到这一点。
样本结构(实际结构要大得多):
typedef struct
{
unsigned short intrecordType;
unsigned long long int callingNumber;
unsigned long long int calledNumber;
char recordingEntity[7];
char mscIncomingTKGP[4];
char mscOutgoingTKGP[4];
char seizureTime[9];
char answerTime[9];
char releaseTime[9]
struct
{
int gsm0408Cause;
int gsm0902MapErrorValue;
int ccittQ767Cause;
int networkSpecificCause;
int manufacturerSpecificCause;
} diagnostics;
unsigned long long int callReference;
int sequenceNumber;
int lastLongPartInd;
int recordExtensions;
char exchangeIdentity[MAX_IA5STRING_SIZE];
} IncGatewayRec;
有 33 个这样的结构(每个结构大约 60-70 个元素)及其相应的用于存储标志的结构,注意哪些字段已填充,哪些未填充(相同的结构,只有unsigned short int
用于存储标志的所有数据类型)
提前致谢。:)