|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
||||||
Отсортировать текстовый файл по значению XLINE с интервалом, заданным пользователем12.11.2014, 16:10. Показов 870. Ответов 15
Метки нет (Все метки)
Задача: есть текстовый файл вида:
INLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421 INLINE : 234 XLINE : 202 668442,50000 565878,00000 996,36517 INLINE : 235 XLINE : 203 668467,50000 565878,00000 997,71307 INLINE : 236 XLINE : 203 668492,50000 565878,00000 997,85120 INLINE : 237 XLINE : 204 668517,50000 565878,00000 996,78815 INLINE : 238 XLINE : 205 668542,50000 565878,00000 997,36981 INLINE : 239 XLINE : 206 668567,50000 565878,00000 999,11261 INLINE : 241 XLINE : 206 668617,50000 565878,00000 1001,53223 Нужно отсортировать его по значению XLINE с интервалом, заданным пользователем.\ Ну к примеру XLINE : 202 Интервал 2 Должен получится файл со строками NLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421 INLINE : 234 XLINE : 202 668442,50000 565878,00000 996,36517 INLINE : 237 XLINE : 204 668517,50000 565878,00000 996,78815 INLINE : 239 XLINE : 206 668567,50000 565878,00000 999,11261 INLINE : 241 XLINE : 206 668617,50000 565878,00000 1001,53223 Я понимаю, что алгоритм не блещет, т.к. прогоняю файл я много раз, но и тут никак не могу добиться результата: сбоит при работе и я уже 25 раз прогнала в режиме отладки и не пойму почему: у меня исходный файл читается первый раз для определения параметра xlainMax и еще пока будет соблюдаться условие (xline<=xlineMax). Первый проход все ок, печатаем и пишем в файл строки с xlain, заданным пользователем, при повторном проходе при заполнении массива massiv_str[i] прога вместо значения пишет ноль и собственно этим все и заканчивается. ПОМОГИТЕ! Текст проги весь ниже.
0
|
||||||
| 12.11.2014, 16:10 | |
|
Ответы с готовыми решениями:
15
Отсортировать в матрице столбцы по возрастанию значений элементов в строке с номером, заданным пользователем Как создать файл с расширением txt и добавить в файл определенного количества строк заданным пользователем? |
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||
| 12.11.2014, 16:31 | ||
|
если я правильно понимаю, ты сначала записываешь более или менее по-человечески имя файла, считанное в str, затем после этого имени продолжаешь дописывать в название SORT.TXT. зачем? Добавлено через 6 минут а, блин, понял. но зачем так сложно дописывать SORT.TXT?)
0
|
||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 12.11.2014, 16:38 [ТС] | |
|
так я и в форуме для новичков.... У меня с именем нет проблем, может конечно сделано не умно, но хотя бы работает.
Мне пользователь вводит имя и путь к файлу, например D:\тест\piks.txt Отсортированный файл я пишу ему в ту же папку, но D:\тест\piksSORT.txt , чтобы он не рыскал по всему компу Добавлено через 1 минуту А сложно потаму как туповаты мы еще (это я к себе на Вы :-) ) Добавлено через 2 минуты Спасибо уже за то, что обратили на меня внимание!
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||||||||||||
| 12.11.2014, 17:15 | ||||||||||||
я скомпилил программу:
INLINE : 233 0 : 202 668417 565878 995 INLINE : 234 0 : 202 668442 565878 996 INLINE : 237 0 : 204 668517 565878 996 INLINE : 239 0 : 206 668567 565878 999 INLINE : 241 0 : 206 668617 565878 1001 В прогу я передал значение 202 и интервал 2. Я правил только проверку на открывание файла. Кстати, отсортированный файл с каждым разом дописывается, старое не затирается. учти это. Добавлено через 4 минуты а если в исходном .txt файле заменить запятые на точки, то получится вывод (при тех же входных данных): INLINE : 233 0 : 202 668417.5 565878 995.87421 INLINE : 234 0 : 202 668442.5 565878 996.36517 INLINE : 237 0 : 204 668517.5 565878 996.78815 INLINE : 239 0 : 206 668567.5 565878 999.11261 INLINE : 241 0 : 206 668617.5 565878 1001.53223
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 08:45 [ТС] | |
|
Надо же... Спасибо!. Тогда если можно еще вопрос. Запустила нормальный документ на сортировку (он под тысячу страниц) - довольно долгий процесс.... не подскажите, где тут можно алгоритм оптимизировать. У меня на каждое новое значение xline вся тысяча перебирается заново. Интуитивно чувствую - что такой вариант - самый долгоиграющий....
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
|
| 13.11.2014, 09:39 | |
|
я, честно говоря, сильно в код не вникал. Как идет обработка? строки из исходного файла, которые подходят для результирующего файла могут меняться в процессе местами? т.е. xline в исходном файле 204 может стоять раньше xline 202? и может ли отсутствовать элемент 206, например:
202 203 204 204 207 208
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 10:09 [ТС] | |
|
Исходный файл
INLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421 В нем параметр XLINE все время возрастает, но нам нужны строки только со значением параметра 202, 214, 226... (кратные 12 в данном случае). Структура исходного файла всегда приблизительно одинакова, разные только цифры. Файлы большие. Поэтому руками их лопатить сложно и долго. Алгоритм в общем виде такой: Открываем файл и первый раз прогоняем до конца чтобы узнать максимальное значение XLINE. Потом пока (xline<=xlineMax) идем в начало файла каждую анализируем строку, если xlin нам нравится, пишем ее в создаваемый файл Дошли до конца файла, меняем значение xline=xline+interval; И погнали файл заново. Т.е. если у меня xline от 202 до 800, а страниц ф файле в районе тысячи - то времени этот процесс занимает достаточно много. Это конечно не критично, т.к. руками все равно дольше, но как то кажется что есть более простое решение... как с SORT.txt :-) А зачем int main(int argc, char *argv[])? чем плохо void?
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||||||||
| 13.11.2014, 10:26 | ||||||||
|
А вообще, на мой взгляд, максимальное значение xline нам и не надо. если разница между найденным и заданным xline кратна введенному интервалу, то копипастим строку в новый файл.
попробуй вот это:
0
|
||||||||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 10:33 [ТС] | |
|
А для чего тогда оно нужно - если не решать рутинные задачи :-) Спасибо - сейчас буду изучать как работает голова у профи
Добавлено через 1 минуту А насчет int main(int argc, char *argv[])?
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
|||
| 13.11.2014, 10:35 | |||
|
Natalia_R, программа-то правильно работает? все хорошо?
Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 10:37 [ТС] | |
|
ссори, невнимательность
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||
| 13.11.2014, 10:40 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 10:46 [ТС] | |
|
ну лабораторки - это дело давнее, да и программер из меня не вышел в свое время....
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
||
| 13.11.2014, 10:50 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
|
|
| 13.11.2014, 10:59 [ТС] | |
|
Это вряд ли, но решать вот такие задачки очень бы хотелось научится. И спасибо за отклик.
0
|
|
|
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
|
|
| 13.11.2014, 11:02 | |
|
Natalia_R, не за что.
0
|
|
| 13.11.2014, 11:02 | |
|
Помогаю со студенческими работами здесь
16
Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и заданным шагом Вывод результата программы в текстовый файл и в двоичный файл с именем, задаваемым пользователем Сохранение в файл с заданным пользователем именем Создайте текстовый файл. Во второй файл запишите строку с заданным номером Отсортировать файл по заданным требованием Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|