【发布时间】:2012-06-06 10:08:40
【问题描述】:
我正在编写一段代码,用于将 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 个元素)及其相应的用于存储标志的结构,注意哪些字段已填充,哪些未填充(相同的结构,只有 @987654322 的所有数据类型@ 存储标志)
提前致谢。 :)
【问题讨论】:
-
文本文件的用途是什么?稍后被另一个程序重新读取,成为人类可读的,还是什么?
-
被另一个程序重读。实际上,它的意思是使用 Fastload 或 Parallel Transporter 实用程序将其加载到 Teradata 数据库中,它们都不支持 ASN.1 BER。
标签: c file struct structure asn.1