|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.05.2015, 23:30 | #1 |
Пользователь
Регистрация: 07.12.2013
Сообщений: 26
|
В текстовом файле поменять местами первую и последнюю строки. Найденные строки показать на экране
Здравствуйте! Не могу понять, как организовать алгоритм, пол дня уже просидел.
Заранее спасибо за помощь! Под x86. |
22.05.2015, 21:50 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
..и чё, нашёл алгоритм?
Ну с первой строкой нет проблем, а вот с последней - напряг. Если вводить текст в самой программе, то можно будет установить режим (пусть будет 80х25) и вычислить общее кол-во строк/символов в тексте. В этом случае легко узнать, сколько символов в последней строке (если строка не полная). Условие точно такое, как ты написал? Может нужно поменять первое предложение с последним?
Нашедшего выход - затаптывают первым..
|
22.05.2015, 23:23 | #3 |
Пользователь
Регистрация: 07.12.2013
Сообщений: 26
|
Да с логикой я разобрался. Только проблем много с кодом. На самом деле можно просто узнать размер файла, динамически выделить сегмента памяти такого же размера, потом считать туда файл, а дальше уже цикл по поиску символа переноса каретки, так мы узнаем начало и конец первой строки; зная адрес конца нашего файла в области, мы можем в цикле с декрементацией адреса найти начало последней строки. А вычисляем размер последней строки, вычитая из адреса конца адрес начала строки, и с адреса начала начинаем записывать такое количество байтов, которое соответствует размеру строки. А дальше всё и так понятно. :3
|
23.05.2015, 09:37 | #4 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
..ты думаеш этот символ там есть? Если при создании файла юзер не ввёл его, то переноса каретки и не будет.
Нашедшего выход - затаптывают первым..
|
23.05.2015, 14:49 | #5 |
Пользователь
Регистрация: 07.12.2013
Сообщений: 26
|
Ну тогда файл будет в одну строку.
|
23.05.2015, 17:22 | #6 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Открой текстовый редактор 'AkelPad', нажми какую-нить клавишу и держи секунд(10). Теперь жми [Ctrl+U] и увидиш, что текст расположиться или в одну строчку или с "переносом по-словам", которые подставит сам текстовый редактор.
Можно-ли надеяться на его перенос - точно не знаю, нужно тестить. Но если ты сам будеш нажимать по-окончании строки "Enter", то это будет надёжней и может послужить тебе фактором для начала строки..
Нашедшего выход - затаптывают первым..
|
23.05.2015, 22:52 | #7 |
Пользователь
Регистрация: 30.03.2015
Сообщений: 17
|
Под DOS пишешь ?
Объем файла какой? Строки плавающей длины или фиксированной ? если что под dos могу помочь |
23.05.2015, 23:37 | #8 |
Пользователь
Регистрация: 07.12.2013
Сообщений: 26
|
Под dos. Да обычная универская задачка. Строки разной длины, объём файла, хм..., если что, то можно уведомить пользователя об ограничениях по размеру файла-ничего страшного. У меня есть набросок, но он косячный слишком.
Последний раз редактировалось V-alterman; 23.05.2015 в 23:50. |
24.05.2015, 11:15 | #9 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
..скинь сюда его, посмотрим.
Нашедшего выход - затаптывают первым..
|
24.05.2015, 11:27 | #10 |
Пользователь
Регистрация: 07.12.2013
Сообщений: 26
|
Даже стыдно как-то такое показывать, мы просто пишем на ассемблере месяца 2 всего.
Код:
Последний раз редактировалось V-alterman; 24.05.2015 в 11:30. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В текстовом файле найти все слова, совпадающие с заданным пользователем и поменять их местами с соседними справа словами ( c# ) | CROWN | Помощь студентам | 4 | 24.12.2014 15:57 |
Поменять местами первую и последнюю , вторую и предпоследнюю и т.д цифры числа | Kat9 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.05.2013 14:35 |
подпрограмма поменять местами первую и последнюю строки (C#) | RIOs | Помощь студентам | 1 | 05.07.2012 22:36 |
Удалить из строки S1 первую, последнюю, все подстроки совпадающие с S2 | ТРОЯН=) | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.12.2008 23:28 |
Как поменять строки в текстовом файле местами | _ares_ | Помощь студентам | 8 | 13.11.2007 02:14 |