![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
SinSoul |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 7.6.2007 Репутация: нет Всего: нет |
Добрый день или вечер!
Я сделал игру на Паскале(курсовая), но появилась маленькая проблема. При завершении игры, лучшие 15 результатов добавляются в фаил. Проблема в том, что мне надо добавлять до или после лучшего результата, в зависимости от нового результата. Было несколько идей, но так ни одну и не смог воплотить. Сперва думал попробовать с функцией StrReplace() - не вышло, даже начать не смог. Второй вариант - считывать каждую линию, ввести в массив и потом сравнивать, но результат не далеко ушёл, т.к в файле не только integer типа данные. Пример: 1. Игрок1 - 152 2. Игрок2 - 131 3. Игрок3 - 111 Новый игрок набрал 122, нужно вставить между 2 и 3 результатами. Заранее благодарю. _____ С уважением, Дмитрий. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: нет Всего: 133 |
Сделай формат файла такой:
Загоняй весь файл в массив построчно (одна строка - один элемент массива), а так же добавляй новый результат. А потом сортируй массив и сохраняй заново. PS. Результат обязательно хранить в текстовом файле? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
SinSoul |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 7.6.2007 Репутация: нет Всего: нет |
А есть другой выбор? Существует ли функция сортировки массива? В php есть, может и в паскале тоже есть? Или мне создать функцию проверки(сравнивания) каждого элемента массива? И ещё,
эти данные можно получить только string типа, возможно сравнивание числовых значений после этого? Или я что-то не догоняю? Благодарю за помощь! |
||||
|
|||||
_Dargin_ |
|
||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.6.2007 Где: Барнаул Репутация: нет Всего: 1 |
Либо использовать записи - не подойдет, если файл должен кто-то видеть,
или брать кусок файла после 2 строчки-> загонять его в TMemoryStream-> очистить содержимое файла Truncate(как-то так)-> добавлять строку-> обратно вписывать содержимое TMemoryStream Изврат конечно. ![]() Поиск чисел в тексте Идя по каждой букве str:string проверяем
Учитывая что пользователь может в нике указать цифры меняем код вот так:
Считывается последние число, если в конце нет никаких символов. Кстати в TurboPascal 7 могут быть проблемы с функцией StrToInt, поэтому советую использовать компиляторы типа TMTPascal. Таким образом получаем число, а потом сортируем. и записываем в файл, если не устраивает первый вариант. Надеюсь помог ![]() Это сообщение отредактировал(а) _Dargin_ - 7.6.2007, 10:23 |
||||
|
|||||
SinSoul |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 7.6.2007 Репутация: нет Всего: нет |
Да! Конечно помогли! Спасибо большое! А насчёт TMemoryStream, ну я не настолько хороший "Паскалист", первый раз в жизни слышу о таком ![]() P.S. пользователь не сможет ввести цифры в име, т.к. я сделал проверку на нажатые клавиши ![]() Выглядит приблизительно вот так:
Это сообщение отредактировал(а) SinSoul - 7.6.2007, 18:08 |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |