Большие текстовые файлы с разделителями с вкладками CSV не открываются в Excel 2011 или OO на Mac

У нас есть инструмент в нашей кодовой базе C ++, который будет выводить значения с плавающей точкой ЭЭГ в текст с разделителями со вкладками. Если у нас есть, например, 256 каналов и 550000 выборок, мы выводим тестовый файл с вкладками CSV, который должен открываться в Excel с 256 столбцами и 550000 строками.

Когда я пытаюсь открыть этот файл в Open Office (следуя инструкциям по открытию файлов TDT), я вижу, что индикатор выполнения работает очень медленно, в конце концов он заканчивается, но файл не открывается.

Когда я пытаюсь открыть его в Excel 2011 для Mac, он зависает на несколько минут, а затем у меня появляется диалоговое окно «Недостаточно памяти». Я смотрю на монитор активности, и у меня есть 16 гигабайт памяти, около 2.7 используется, и к тому времени, когда Excel возвращает это сообщение, у меня все еще остается около 6 гигабайт памяти. Размер после преобразования этого файла составляет от 560 МБ до 1,81 гигабайта, что примерно соответствует размеру строки значений.

Меньшие файлы, такие как 100000 семплов и 256 каналов, открываются нормально и выглядят правильно.

Согласно документации Excel, он должен отображать более 1 миллиона строк и что-то вроде 16000 столбцов.

Я написал скрипт Python для проверки файла, и он содержит 550 000 строк, как и должно быть.
Я также написал тестовый код C ++, чтобы убедиться, что это не то, чем я занимался.

Фрагмент кода:

// C style file stream.
#include <cstdio>
#include <iostream>

int main(int argc, const char * argv[])
{
std::cout<<"Procesing"<<std::endl;
std::string fileURI = "/Users/mmurphy/Desktop/TabbedTestFile.txt";
float eeg = 87658.98765;

// Create a C style file stream object.
FILE* dataStream;

dataStream = fopen(fileURI.c_str(), "w+");

for(int32_t s = 0; s < 550000; s++){for(int32_t c = 0; c < 256; c++){

fprintf(dataStream, "%f\t",eeg);
}

// Simulate the Vref Channel (257)
fprintf(dataStream, "%f\n",0.0);

}

// Close the fileStream
fclose(dataStream);

std::cout<<"Complete"<<std::endl;

}

Если я изменю количество столбцов с 256 на 3, это будет нормально работать. Должен ли я предположить, что поскольку это происходит как в Excel, так и в OO, может быть какая-то ошибка, которая была введена в OS Mavericks?

Любая информация приветствуется.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]