|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
||||||
Сортировка строк файла11.01.2016, 00:21. Показов 10958. Ответов 14
Метки нет (Все метки)
Доброго времени суток. Пытаюсь написать что-то наподобие БД. Не могу реализовать алгоритм сортировки строк текста файла. Количество строк неизвестно. Известно, что каждая строка состоит из 6 элементов разного типа, разделенных пробелом, но при этом первый элемент - это всегда порядковый номер этой строки. Пример строк:
1 Космос 300 200 100 50 2 Пила 330 200 200 300 3 Вилла 400 100 300 200 Сортировать нужно в порядке увеличения, сравнивая 6-ые элементы каждой строки. Сортированный текст тоже нужно записать в этот же файл. Думал взять два вектора и записывать по строке в них, а потом сравнив элементы их свапнуть при необходимости, но не знаю, как сделать, что бы считывало 1 и 2 строку, а потом 2 и 3 и так далее. Вот мои наработки кода, сделал только 1 и 2 пункт.
И забыл, там есть комментарий такого типа: !!!!!!!!!!!!!!!!. Там у меня почему-то не работает флаг _NoCreate.
0
|
||||||
| 11.01.2016, 00:21 | |
|
Ответы с готовыми решениями:
14
Открытие файла. Сортировка строк Считывание строк из файла и сортировка , C++ |
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||
| 11.01.2016, 00:29 | ||||||
|
ЗеХель, тебе фактически просто нужно уметь сортировать по любому полю структуры data.
0
|
||||||
|
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
|
|
| 11.01.2016, 00:35 | |
|
ЗеХель, pair? строка <-> последний токен, сортировка по второму элементу.
0
|
|
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
|
| 11.01.2016, 00:41 [ТС] | |
|
nonedark2008, ну сортировать вектора я умею, а вот как занести нужное доброе из файла ( в данном случае элементы строк) я не могу понять.
Добавлено через 1 минуту cyber-satyr, pair? это метод какой-то? или что это
0
|
|
|
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
|
|
| 11.01.2016, 00:44 | |
|
0
|
|
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
|
| 11.01.2016, 00:46 [ТС] | |
|
cyber-satyr, а как объединение мне поможет мне вытащить нужную строку в вектор?
0
|
|
|
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
|
|
| 11.01.2016, 00:47 | |
|
читаем строку, выделяем последний токен, конвертируем его в int, создаем объект pair<string, int> foo(str, int_num), добавляем его в вектор, сортируем вектор по foo.second.
0
|
|
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
|
| 11.01.2016, 00:57 [ТС] | |
|
cyber-satyr, мысль понял, но все-таки. Вот я отсортировал вектор и как потом сортировать строки в файле согласно порядку в векторе?
0
|
|
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||||||||
| 11.01.2016, 00:58 | ||||||||||||
Сообщение было отмечено ЗеХель как решение
Решение
Тогда считывание и запись объектов data будет очень простым:
1
|
||||||||||||
|
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
|
|||||||||||
| 11.01.2016, 01:03 | |||||||||||
Сообщение было отмечено gru74ik как решение
Решение
Иих надо отсортировать в памяти, а потом записать в файл. Если размеры файла это позволяют. Если же нет, придется немного изловчиться.
Добавлено через 4 минуты ЗеХель, приблизительно так. Тебе осталось только I/O и работа с последним токеном строки.
Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
||
| 11.01.2016, 01:20 [ТС] | ||
|
0
|
||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||||||||||||||||
| 11.01.2016, 01:30 | |||||||||||||||||
|
Ты оттуда можешь прочитать, например, одно слово (string), число (int) и т.д. А теперь ты захотел прочитать переменную типа data:
Для структуры data нужно только его перегрузить:
1
|
|||||||||||||||||
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
||
| 11.01.2016, 01:31 [ТС] | ||
|
0
|
||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 11.01.2016, 01:35 | ||
|
Впихни их, например, сразу после задания структуры data.
1
|
||
|
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
|
|
| 11.01.2016, 01:37 [ТС] | |
|
nonedark2008, всё, я понял. Ты просто чёртов гений, просто большое спасибо! Нет, даже гигантское!
0
|
|
| 11.01.2016, 01:37 | |
|
Помогаю со студенческими работами здесь
15
Сортировка чисел из строк файла Сортировка строк и перенос из файла в файл
Сортировка строк из файла по количеству гласных букв Считывание строк из файла в массивы и их сортировка слиянием Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|