一个需求请帮忙看看,怎么样写考虑比较全面。
infomix导出的数据文件为src.unl, 文本格式及内容如下: 123|456|45\|\|\|22|22||
现在需要把unl格式的数据,通过C生成如下格式的文本文件(dest.txt) 。 例如: 123,456,45|||22, 22, null
然后将dest.txt文本数据导入到db2数据库表中。
请帮忙写个可以运行通过的C代码来参考,多谢。
输入src.unl, 输出dest.txt。
[解决办法]
#include<stdio.h>#include<string.h>#include<stdlib.h>char* transe(char* src,char* dest){char pre='\0',cur;char *ret=dest;while(*src){cur=*src;switch(cur){case '\\': break;case '|': if(pre=='\\') *dest++='|'; else if(pre!='|') *dest++=','; break;default: *dest++=cur; break;}pre=cur;src++;}if(dest != ret && *(dest-1)==',') *(dest-1)='\0';else *dest='\0';return ret;}int main(){char str[4096];char buf[4096];FILE *fin=fopen("src.unl","r");FILE *fout=fopen("dest.txt","w");while(fgets(str,4096,fin),!feof(fin)){ transe(str,buf); fprintf(fout,"%s\n",buf);}fclose(fin);fclose(fout);return 0;}