Вывод строк из файла. Как?
Искал по форуму, но так ничего подходящего и не нашел.
Вот что нужно: Пишу игру. Есть диалоги, которые построчно будут считываться с файла при наступлении определенных событий. Допустим в файле диалоги будут храниться построчно. Как мне построчно выводить строки? Я так понимаю функцией ReadLine? Только потом как продолжить вывод строк начиная не с первой, а с какой-то определенной? Вот допустим вывел первые три строки, а дальше нужно потом по ходу программы после какого-то события вывести четвертую и т.д. С одного файла... Как это реализовать? Заранее спасибо! |
Ответ: Вывод строк из файла. Как?
Если строки не очень большие - можно сделать чуть по говнокодерскому - записывать их блоками константной длины. Потом тупо читать целый блок и записвать с него данные в строку. Но это весьма медленно, зато при огромных размерах файла ускорит индексацию (позиция n-ной строки: n*STR_SIZE, где STR_SIZE - размер блока)
Но можно сделать по-другому, более экнонмно: первый int(readint()) - длина строки, потом идут байты этой строки последовательно. Потом опять размер следующей строки и т.д. При поиске нужной строки просто берем первый int, прибавляем к позиции файла его, смещаем указатель в файле, потом опять читаем размер следующей строки, прибавляем, смещаем, и так пока не найдем нужную строку 6) |
Ответ: Вывод строк из файла. Как?
Цитата:
|
Ответ: Вывод строк из файла. Как?
Цитата:
|
Ответ: Вывод строк из файла. Как?
Юзай номер строки при вызове.
|
Ответ: Вывод строк из файла. Как?
Gector, а можно конкретней - какая функция обращается к строке по ее номеру?
|
Ответ: Вывод строк из файла. Как?
Я думаю топикстартеру стоит почитать про массивы, а так же про ReadLine.
Возможно натолкнёт на мысли в правильном направлении. |
Ответ: Вывод строк из файла. Как?
Цитата:
|
Reply
Когда-то себе писал подобную штуку для поддержки нескольких языков в программе. Номер строк добавил для удобства, чтобы не запутаться.
Вот код: Код:
Dim msg$(999) Структура файла с текстом должна быть такой: [Номер строки]:[Текст строки] Например: Код:
1:Заголовок окна В своём коде сначала запускаешь эту функцию, а потом уже можешь обращаться к любой строке через msg([Номер строки]). Ну например: Код:
LoadLanguage() |
Ответ: Вывод строк из файла. Как?
Цитата:
instr() |
Ответ: Вывод строк из файла. Как?
Цитата:
|
Часовой пояс GMT +4, время: 13:27. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot