我正在尝试编写转换以从一种格式获取数据以将其呈现为csv。 文件的当前格式对于电子表格中的单行是这样的,只有具有列ID的字段才会被提取
01*A*B*C*D*E*F*G*H*I*J*K*L*M*
02*N*O*P*Q*R*
03*S*T*U*V*W*X*Y*Z*AA*AB*AC*AD*AE*
04**********
04**********
04**********
05*AF*AG*
06*AH*AI*AJ*AK*
06*AL*AM*AN*AO*
07*AP*AQ*
07*AR*AS*
08*AT*AU*AV*AW*AX*AY*AZ*BA*BB*BC*BD*BE*
09*******
问题是从04和06开始的行数量可能会有所不同,具体取决于该列表中包含的数据量。从04和09开始的所有行都将被忽略,并且任何以06开头超过前两行的行也将被忽略,但如果只有一行以06开头,则需要保留第二列。只要我能在windows中做到这一点,我就不会对此语言挑剔,我只是凭借自己有限的编程经验打砖墙
答案 0 :(得分:1)
您的示例数据是一种相对常见的EDI格式,因此您需要克服的问题是知道您的记录何时开始以及何时结束。通常,您将文件流读取到换行符(换句话说,您一次读取1行)。当检测到记录的入口点时,在您的示例中以“01 *”开头的行,您创建一个内部循环来读取包含或忽略的行,具体取决于您的具体需求。对象可以很容易地加载到循环中。一旦记录完成(通过“09 *”),您就会有一个表示记录的对象,可用于进一步处理,保存,导出......无论您需要做什么。
我认为对你来说更大的问题是你自己有限的编程经验。您没有具体说明您使用的是哪种语言?我建议您不要试图解决特定问题,而应考虑您的目标平台,熟悉开发语言和优缺点。此外,我建议不要将文件I / O作为您最初的编程经验之一,因为存在太多陷阱。 我不会把你的问题变成“什么是最好的语言”辩论,但是给这些辩论并决定你是否可以花一些时间进一步学习 -
如果你没有自由周期来学习任何程度的特定语言,我可以建议一些非常强大的“数据转换”产品(也就是ETL工具)。使用这些可视化工具,您可以定义源文件,如何提供数据以及如何改变输出。这些为非程序员提供了很多选择,并且在许多情况下可以与自定义编写的软件一样好。 这是一个我过去使用过很多成功的工具 -