解析文本文件(100+ MB)并通过网络发送数据

时间:2009-12-18 10:39:04

标签: parsing

我需要解析一个巨大的文本文件,并发送此文件的一部分作为Content Manager中的单独行添加。什么是解析然后更新数据库的最佳方法?

我还需要在此文本文件中标识某些标记。

请建议我使用哪种语言来编写此要求。

由于

3 个答案:

答案 0 :(得分:4)

所有广泛使用的编程语言都可以做到这一点,尽管脚本语言(尤其是Perl)可能比其他语言更适合任务。但是,您的个人经历是一个更重要的因素:使用您最熟悉的语言可能是最好的,除非您有特殊原因不使用它,或使用其他语言。

答案 1 :(得分:1)

如果没有更详细的要求,很难建议使用特定的语言。当然,没有语言可以神奇地解决解析这么大的文件的问题。根据文件的格式,可能存在特别适合作业的解析库,可以指导您选择语言。

如果用“Content Manager”表示Microsoft Content Manager Server我猜C#或VB.Net等Microsoft语言之一可能是更好的选择。

所以我的答案会选择你已经知道的一种语言,可能是你最熟悉的语言。

答案 2 :(得分:1)

使用大文件时的一个典型问题就是首先阅读它们。许多标准库倾向于将整个文件读入内存/数组。但是对于非常大的文件,这通常是不实际的。

对于您最终选择的语言,请仔细查看文件I / O库,并选择一种允许您以块的形式读取文件的方法。然后在块上运行解析逻辑,当到达块的末尾时,请阅读下一个块。注意解析逻辑,当它在一个你的解析不期望的地方结束时处理一个块有时会很棘手。

另外,双缓冲系统有时效果很好。处理一个块,当你接近结束时,用另一个块填充另一个缓冲区。如果您的解析是CPU密集型的,您甚至可能会考虑在另一个线程上填充缓冲区以使文件I / O与解析重叠。但是,我不会先这样做。首先在任何性能优化之前使逻辑工作。