Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 17.04.2011, 22:10   #1
Drayfer
Нуждающийся
 
Регистрация: 14.02.2011
Адрес: Украина, Луганск
Сообщений: 67
Написано 0 полезных сообщений
(для 0 пользователей)
Вывод строк из файла. Как?

Искал по форуму, но так ничего подходящего и не нашел.
Вот что нужно:

Пишу игру. Есть диалоги, которые построчно будут считываться с файла при наступлении определенных событий.

Допустим в файле диалоги будут храниться построчно. Как мне построчно выводить строки? Я так понимаю функцией ReadLine?
Только потом как продолжить вывод строк начиная не с первой, а с какой-то определенной?
Вот допустим вывел первые три строки, а дальше нужно потом по ходу программы после какого-то события вывести четвертую и т.д. С одного файла...

Как это реализовать? Заранее спасибо!
(Offline)
 
Ответить с цитированием
Старый 17.04.2011, 23:25   #2
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Вывод строк из файла. Как?

Если строки не очень большие - можно сделать чуть по говнокодерскому - записывать их блоками константной длины. Потом тупо читать целый блок и записвать с него данные в строку. Но это весьма медленно, зато при огромных размерах файла ускорит индексацию (позиция n-ной строки: n*STR_SIZE, где STR_SIZE - размер блока)
Но можно сделать по-другому, более экнонмно:
первый int(readint()) - длина строки, потом идут байты этой строки последовательно. Потом опять размер следующей строки и т.д. При поиске нужной строки просто берем первый int, прибавляем к позиции файла его, смещаем указатель в файле, потом опять читаем размер следующей строки, прибавляем, смещаем, и так пока не найдем нужную строку 6)
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 14:18   #3
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: Вывод строк из файла. Как?

Есть диалоги, которые построчно будут считываться с файла при наступлении определенных событий.
Не не не. Автор загружай всё сразу, и используй из оперативки, благо текст весит копейки.
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 14:48   #4
Drayfer
Нуждающийся
 
Регистрация: 14.02.2011
Адрес: Украина, Луганск
Сообщений: 67
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вывод строк из файла. Как?

Сообщение от Mhyhr Посмотреть сообщение
Не не не. Автор загружай всё сразу, и используй из оперативки, благо текст весит копейки.
Ну вот допустим загружу все сразу. А как потом обращаться к конкретной строке?
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 15:14   #5
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Вывод строк из файла. Как?

Юзай номер строки при вызове.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 15:18   #6
Drayfer
Нуждающийся
 
Регистрация: 14.02.2011
Адрес: Украина, Луганск
Сообщений: 67
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вывод строк из файла. Как?

Gector, а можно конкретней - какая функция обращается к строке по ее номеру?
(Offline)
 
Ответить с цитированием
Старый 18.04.2011, 15:34   #7
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вывод строк из файла. Как?

Я думаю топикстартеру стоит почитать про массивы, а так же про ReadLine.
Возможно натолкнёт на мысли в правильном направлении.
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
Gector (18.04.2011), maxturbo (20.04.2011)
Старый 18.04.2011, 16:58   #8
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Вывод строк из файла. Как?

Gector, а можно конкретней - какая функция обращается к строке по ее номеру?
Там смотря какой порядок в файле был. Джокер прав. Почитай в справке про массивы. Там легко все.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 19.04.2011, 03:34   #9
Ky3R_94
Нуждающийся
 
Аватар для Ky3R_94
 
Регистрация: 29.08.2009
Адрес: Україна, Донецьк
Сообщений: 71
Написано 13 полезных сообщений
(для 45 пользователей)
Reply

Когда-то себе писал подобную штуку для поддержки нескольких языков в программе. Номер строк добавил для удобства, чтобы не запутаться.

Вот код:
Dim msg$(999)

Function LoadLanguage()
	file=ReadFile("language.ini")
	While Not Eof(file)
		a$=ReadLine$(file)
		i=0
		Repeat
			i=i+1
		Until (Mid(a$,i,1)=":") Or (i>Len(a$))

		If i<Len(a$)
			index=Left(a$,i-1)
			msg(index)=Right(a$,Len(a$)-i)
		End If
	Wend
	CloseFile file
End Function
Файл можешь любой прикрутить, естественно) Но только соблюдай структутру!

Структура файла с текстом должна быть такой:
[Номер строки]:[Текст строки]

Например:
1:Заголовок окна
2:Текстовая строка
Строки могут идти не по порядку, если что

В своём коде сначала запускаешь эту функцию, а потом уже можешь обращаться к любой строке через msg([Номер строки]).

Ну например:
LoadLanguage()
AppTitle msg$(1)
Print msg$(2)
Как-то так о_О
__________________
PC: AMD Phenom x4, 4096 MB RAM, Nvidia GeForce 9600GT, Windows Vista
(Offline)
 
Ответить с цитированием
Старый 19.04.2011, 10:05   #10
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Вывод строк из файла. Как?

i=0
Repeat
	i=i+1
Until (Mid(a$,i,1)=":") Or (i>Len(a$))
Индус?
instr()
(Offline)
 
Ответить с цитированием
Старый 19.04.2011, 17:01   #11
Ky3R_94
Нуждающийся
 
Аватар для Ky3R_94
 
Регистрация: 29.08.2009
Адрес: Україна, Донецьк
Сообщений: 71
Написано 13 полезных сообщений
(для 45 пользователей)
Ответ: Вывод строк из файла. Как?

Сообщение от Павел Посмотреть сообщение
Индус?
instr()
Ага... Привычка после школного программинга на pascal'е-qbasic'е осталась... Там такой функции не было вроде
__________________
PC: AMD Phenom x4, 4096 MB RAM, Nvidia GeForce 9600GT, Windows Vista
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:32.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com