我有一个工具来比较2个csv文件,然后将每个单元格装入6个桶中的一个.基本上,它读取csv文件(使用快速csv阅读器,信用:http://www.codeproject.com/KB/database/CsvReader.aspx),然后根据提供的密钥创建一个与每个文件有关的字典.用户.然后我遍历比较值并写入结果csv文件的字典.
虽然速度非常快,但在内存使用方面效率非常低.我无法比较我的盒子上超过150 MB的文件和3 GB的物理内存.
这是一个用于读取预期文件的代码段.在这篇文章的最后,任务管理器的内存使用量接近500 MB.
// Read Expected
long rowNumExp;
System.IO.StreamReader readerStreamExp = new System.IO.StreamReader(@expFile);
SortedDictionary<string, string[]> dictExp = new SortedDictionary<string, string[]>();
List<string[]> listDupExp = new List<string[]>();
using (CsvReader readerCSVExp = new CsvReader(readerStreamExp, hasHeaders, 4096))
{
readerCSVExp.SkipEmptyLines = false;
readerCSVExp.DefaultParseErrorAction = ParseErrorAction.ThrowException;
readerCSVExp.MissingFieldAction = MissingFieldAction.ParseError;
fieldCountExp = readerCSVExp.FieldCount;
string keyExp;
string[] rowExp = null;
while (readerCSVExp.ReadNextRecord())
{
if (hasHeaders == true)
{
rowNumExp = readerCSVExp.CurrentRecordIndex + 2;
}
else
{
rowNumExp = readerCSVExp.CurrentRecordIndex + 1; …Run Code Online (Sandbox Code Playgroud) 什么是为N个排序文件实现N路合并的最佳方法?
假设我有9个已排序的文件,每个文件有10个记录?如何合并这些文件以创建包含90个已排序记录的大文件?
我有一个应用程序,写大型.csv文件大小从1 GB到2 GB.
我需要对文件进行颜色编码并将其另存为.xlsx.
所以我尝试使用Excel Interop,它适用于小文件,但是当我尝试用Excel打开一个1.3 GB的.csv文件时,我收到一个Hresult错误.
关于如何使用Excel完成此任务的任何想法,或者是否有任何其他方法可以完成此任务.