文件读取在C中具有特定格式

时间:2015-07-09 11:18:50

标签: c

我想在 C 中阅读文本文件,我想对此文件执行搜索。这是文本文件的内容:

EDIT :原始格式看起来有点不同,因为文件中没有换行符。已重新格式化以删除文本字符串之间的空格,并通过多列程序过滤80col屏幕。)

^%1~3~31225~2999              ^%1~8~33983~5304
~MAC100                      ~MAC100
~RAJU                        ~LATHA CHERIAN
CR                           ~ELIM VILLA
~CHEMPOLA                    ~1
~VT : 2999                   ~9847569922
~9847569922                  ~32166
~29408                       ~Message for bill gro~1960.0
~Message for bill gro~750.0  ~160.0
~250.0                       ~0.0
~0.0                         ~1~scheme name
~1~scheme name               ~0
~0                           ~June
~June                        ~VA019_95784~-
~VA019_93159~-               ~0.0
~0.0                         ~0~amc date 1~amc date 2~990
~1~amc date 1~amc date 2~990 ~15.0
~15.0                        ~150.0
~150.0                       ~narration
~narration                   ^%1~9~31588~3235
^%1~5~30882~2496             ~MAC100
~MAC100                      ~BABU
~VISWAMPARAN T. P.           ~NADUMPARMBIL
~THALAKOTTUCHALIL            ~0
~C 4771                      ~9847569922
~9847569922                  ~29771
~29065                       ~Message for bill gro~3304.0
~Message for bill gro~4320.0 ~160.0
~160.0                       ~0.0
~0.0                         ~1~scheme name
~1~scheme name               ~0
~0                           ~June
~June                        ~VA019_93516~-
~VA019_92833~-               ~0.0
~0.0                         ~0~amc date 1~amc date 2~990
~0~amc date 1~amc date 2~990 ~15.0
~15.0                        ~150.0
~150.0                       ~narration
~narration                   ^? 

这是计费系统格式的数据库。我想根据名称和id(这是^%1~9~**31588**~3235here 31588)来执行此文件的通用搜索功能。这是记录文件。每条记录都以^%1.~开头,~用于分隔每条记录的列值。不需要第一个和最后一个字符(每个记录^%1和文件最后^?。请帮我这样做。

2 个答案:

答案 0 :(得分:1)

您首先应该定义(或理解)精确您的输入格式(可能的&禁止字符是什么),也许使用某些EBNF表示法。

然后您可以逐行处理输入(使用fgetsgetline)并分别解析每一行(使用sscanfstrtol并进行额外的手动解析)< / p>

答案 1 :(得分:0)

使用fgets()逐行读取,然后在#34;〜&#34;的基础上使用strtok进行标记。希望有效