|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
13.09.2010, 22:37
|
#1
|
Разработчик
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений (для 329 пользователей)
|
Строчка из банка
Срочно нужна была такая функция, вот накарябал быстренько, может кому и понадобится
Global Bank_ReadLine_EndPos
;sample
bank = CreateBank(16)
PokeByte bank,0,Asc("L")
PokeByte bank,1,Asc("O")
PokeByte bank,2,Asc("L")
PokeByte bank,3,Asc("!")
PokeByte bank,4,13
PokeByte bank,5,10
PokeByte bank,6,Asc("O")
PokeByte bank,7,Asc("L")
PokeByte bank,8,Asc("O")
PokeByte bank,9,Asc("L")
PokeByte bank,10,Asc("O")
PokeByte bank,11,13
PokeByte bank,12,Asc("D")
PokeByte bank,13,Asc("I")
PokeByte bank,14,Asc("C")
PokeByte bank,15,Asc("K")
Print Bank_ReadLine(bank,0)
Print Bank_ReadLine(bank,Bank_ReadLine_EndPos)
Print Bank_ReadLine(bank,Bank_ReadLine_EndPos)
WaitKey
End
;/sample
Function Bank_ReadLine$(bank,start)
Local tmp_r$,tmp_s
Bank_ReadLine_EndPos = start
While 666
If Bank_ReadLine_EndPos > BankSize(bank)-1 Then Exit
tmp_s = PeekByte(bank,Bank_ReadLine_EndPos)
If tmp_s = 13 Then
If PeekByte(bank,Bank_ReadLine_EndPos+1) = 10 Then Bank_ReadLine_EndPos = Bank_ReadLine_EndPos + 1
Exit
End If
tmp_r = tmp_r + Chr(tmp_s)
Bank_ReadLine_EndPos = Bank_ReadLine_EndPos + 1
Wend
Bank_ReadLine_EndPos = Bank_ReadLine_EndPos + 1
Return tmp_r
End Function
|
(Offline)
|
|
14.09.2010, 23:33
|
#2
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Строчка из банка
Сообщение от DeeJex
Срочно нужна была такая функция, вот накарябал быстренько, может кому и понадобится
|
Можно чуть по проще сделать...
...10 минут спустя...
;Создаем банк "test" c текстом "Hello World!"
test=Bank_SaveLine("Hello World!")
;Извлекаем из банка "test" записанный текст и печатаем его
Print Bank_ReadLine(test)
;Ждем нажатия клавиши перед выключением программы (чтобы успеть прочесть результат)
WaitKey
;Функция записи текста в банк
Function Bank_SaveLine(Save_Text$)
Local TextLen=Len(Save_Text$)
bank = CreateBank(TextLen)
For t=0 To (TextLen-1)
PokeByte bank,t,Asc(Mid(Save_Text$,t+1,1))
Next
Return bank
End Function
;Функция чтения текста из банка
Function Bank_ReadLine$(bank)
Local BankScale=BankSize(bank),t,ReadText$
For t=1 To BankScale
ReadText$=ReadText$+Chr(PeekByte(bank,t-1))
Next
Return ReadText$
End Function
Терь можно и у ся в игрухе юзать)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.09.2010, 23:37
|
#3
|
Разработчик
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений (для 74 пользователей)
|
Ответ: Строчка из банка
а для чего это?
__________________
Самый первый и самый великий программист - это Бог.
|
(Offline)
|
|
15.09.2010, 15:20
|
#4
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Строчка из банка
Сообщение от Ganociy
а для чего это?
|
То что сделал я, просто для записи/чтения текста в банке, я просто сам не сразу понял что делает функция DeeJex`а, и попытался перевести ее на свой лад, но потом вроде разобрался. Поидее его функция позволяет извлекать из банка записанный туда текст построчно, похоже на чтение пакетов UPD, можно попробовать использовать при создании собственного Input(ввода текста).
П.с. Если я не так понял, тогда сорь.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:56.
|