Я хочу иметь возможность читать из несортированного исходного текстового файла (по одной записи в каждой строке) и вставлять строку / запись в целевой текстовый файл, указав номер строки, в которую она должна быть вставлена.
Где вставить строку / запись в файл назначения, будет определено путем сравнения входящей строки из входящего файла с уже упорядоченным списком в файле назначения. (Файл назначения будет начинаться как пустой файл, и данные будут отсортированы и вставлены в него по одной строке за раз, когда программа выполняет итерацию по строкам входящего файла.)
Пример входящего файла:
1 10/01/2008 line1data
2 11/01/2008 line2data
3 10/15/2008 line3data
Пример требуемого файла назначения:
2 11/01/2008 line2data
3 10/15/2008 line3data
1 10/01/2008 line1data
Я мог бы сделать это, выполнив сортировку в памяти через связанный список или аналогичный, но я хочу разрешить это масштабировать до очень больших файлов. (И я получаю удовольствие, пытаясь решить эту проблему, так как я новичок в C ++:).)
Одним из способов сделать это может быть открытие 2 файловых потоков с fstream
(1 вход и 1 выход или только 1 вход / выход), но затем я сталкиваюсь с трудностью, которую трудно найти и ищите позицию файла, потому что она, кажется, зависит от абсолютной позиции с начала файла, а не от номеров строк:).
Я уверен, что подобные проблемы решались и раньше, и я был бы признателен за совет о том, как действовать в соответствии с хорошей практикой.
Я использую Visual Studio 2008 Pro C ++ и только изучаю C ++.