У меня есть проект в реальном времени, который имеет тяжелый процесс на каждой строке какого-либо текстового файла, что вы предлагаете для хранения этого текста?Является ли сохранение большого файла в массиве символов правильным?
Что я делаю сейчас, это сохранить весь текстовый файл в переменной char *, а затем работать с этой переменной вместо файла, моя проблема в том, когда текст становится больше, что я могу сделать? и есть возможность достичь ограничения массива символов, а куча памяти будет увеличиваться :(
Другое решение, которое я имею в виду, это то, что каждый раз, когда я хочу эту конкретную строку текста, я просматриваю файл и читать это и работать с ним, но это решение делает мою программу настолько медленной, и, как я упоминал ранее, для меня важно время, что вы предлагаете для меня?
Есть ли другой способ, который быстр достаточно, чтобы я мог его использовать?
Вы не указали, какой RTOS используется (или ваш «в реальном времени» просто «должен быть быстрым»). Он может иметь файлы с отображением памяти. – KIIV
@KIIV это должен быть быстрый вид :) –
Это действительно зависит от ситуации или того, что это за файл. Если вы хотите реально повысить производительность и разрешить ситуацию, я бы предложил разбора файла раньше времени в более быструю внутреннюю структуру данных, а не как исходный текст. Если файл огромен до такой степени, что память будет ограничением, я бы предложил разбор его в базу данных с соответствующими индексами и работу с базой данных. В любом случае, я бы определенно предложил на данный момент использовать 'std :: vector' или 'std :: string' вместо' char * ', если можно. Это, вероятно, сделает вашу жизнь немного легче в коротких и длинных тиражах. –
Taywee