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

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

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

PureBasic Мощный кросс-платформенный язык среднего уровня на основе BASIC. Подходит для решения широкого круга задач.

Закрытая тема
 
Опции темы
Старый 07.11.2011, 19:03   #1
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
как поместить данные из памяти в строку?

как поместить данные из памяти в строку?

вопрос, наверное, глупый, но для меня все эти указатели пока темный лес. вопрос вот в чем:

я пакую текст в файл Packname$. кодировка текста неизвестна, заканчивается ли строка на #0 - тоже не знаю, но разделители #13 там есть точно. впрочем, это неважно.

CreatePack(Packname$)
AddPackFile("text.txt"9)
ClosePack 
потом, когда понадобится, я собираюсь извлечь содержимое всего текстового файла в одну строку.

Procedure.s GetText(Filename.s)
  Protected 
Mem.l
  OpenPack
(Filename)
  Protected 
Size.PackFileSize()
  
Mem NextPackFile()
  
ClosePack()
  Return 
PeekS(MemSize)
EndProcedure 
итак, в Mem у меня адрес памяти, где лежит распакованный тектовый файл, в Size - длина текста в байтах (но не в символах). как мне содержимое памяти в строковую переменную запихать? я что-то не уверен, что всё правильно делаю, потому что в справке сказано, чтов Text$ = PeekS(*MemoryBuffer [, Length [, Flags]] ) Length - это длина строки в символах, а не в байтах.
__________________
to be or not to be - it's not a question!
2b or not 2b = ff

Последний раз редактировалось barsunduk, 07.11.2011 в 20:15.
(Offline)
 
Старый 07.11.2011, 21:51   #2
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Ответ: как поместить данные из памяти в строку?

всё, отбой. вроде работает. PackFileSize() вызывается после NextPackFile()

извлечь из архива список содержащихся в нем файлов
jopaU Jammed Objects Packaged Archive (Unit)
Procedure.s GetJopaList(JopaFilename.s)
  Protected 
Text.""
  
If FileExists(JopaFilename)
    
OpenPack(JopaFilename)
    
Text PeekS(NextPackFile())
    
Text Left(TextPackFileSize())
    
ClosePack()
  EndIf
  
ProcedureReturn Text
EndProcedure 
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Закрытая тема


Опции темы

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

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


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


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