Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 将批量数据转换为.csv_Windows - Fatal编程技术网

Windows 将批量数据转换为.csv

Windows 将批量数据转换为.csv,windows,Windows,我正在尝试编写一个转换,从一种格式获取数据,并将其显示为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* 0

我正在尝试编写一个转换,从一种格式获取数据,并将其显示为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中使用它,我就用自己有限的编程经验碰上了一堵墙

您的示例数据是一种相对常见的EDI格式,因此您需要克服的问题是知道记录何时开始和何时结束。通常,您读取文件流直到换行(换句话说,您一次读取一行)。当检测到记录的入口点(示例中以“01*”开头的行)时,您可以创建一个内部循环来读取要包含或忽略的行,具体取决于您的具体需要。对象可以很容易地加载到循环中。记录完成后(通过“09*”),您将拥有一个表示记录的对象,该对象可用于进一步处理、保存、导出。。。不管你需要做什么

我认为对你来说,更大的问题是你自己有限的编程经验。您没有指定您正在使用的语言吗?与其一开始就试图解决一个特定的问题,我建议您熟悉开发语言以及考虑目标平台的优缺点。此外,我建议不要将文件I/O作为编程的第一次体验,因为存在太多陷阱。 我不会把你的问题变成“什么是最好的语言”的辩论,但请仔细阅读,然后决定你是否可以花些时间进一步学习-

  • Visual Basic:

  • Python:

  • 爪哇:

如果你没有足够的时间学习某种特定的语言,我可以推荐一些非常强大的“数据转换”产品(也称为ETL工具)。使用这些可视化工具,您可以定义源文件、如何提供数据以及如何改变输出。这些为非程序员提供了大量的选择,在许多情况下,它们可以和定制的软件一样好。 这里有一个这样的工具,我在过去成功地使用过-


您编写了哪些代码?。。。用什么语言?因为它只是文本过滤(我想?),你知道的最合适的语言是什么?