PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Data


Data

Сообщений 1 страница 3 из 3

1

Из справки

Это позволяет иметь в программе множество значений по умолчанию, или текстовые сообщения для интерфейса или диалога.

В чём разница вставить текст непосредственно в диалог, определить в переменную или в Data?
Предполагаю что назначение текста переменной как бы дублирует текст, потому что это выполнение кода и он берёт некоторые данные из адреса загруженной программы, выделяет память и помещает туда и это теперь будет переменная.
Надо ли нам тогда делать так:

Код:
Restore StrData
Read.s Title$
Read.s Text$

MessageRequester(Title$ , Text$)

DataSection
    StrData:
    Data.s "Заголовок", "текст"
EndDataSection

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

Я понимаю если бы это выглядело как то так:

Код:
MessageRequester(Read.s , Read.s)

Отредактировано AZJIO (19.03.2022 13:31:48)

0

2

Поддержка Data как и подпрограмм (Gosub, Return) для совместимости с ранними версиями бейсика.
Обычно DataSection используется совместно с IncludeBinary или для смешанных типов данных.

Код:
IID_IUnknown: 
Data.l $00000000
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46

0

3

Как бы напрашивыется что датасекция статичная,возможно и "вставить текст непосредственно в диалог" тоже самое при компиляции программы пишутся данные в участок памяти выделенной программе статично на весь код(можно ли её участок расширить при выполнении программы?),а вот переменная раз имеет изменяемый массив символов работает объективно как динамичиская память,
ну или переменная работает как указатель на выделенную память.
PS:допусим блок данных где идут две строки подряд с своими адресами в датасекции скомпилятся с основной памятью програмы как линейно расширить первую строку,она же затрёт вторую и далее за её выход чего то ещё, значит типа метку(адрес) на вход нужно будет изменить типа на другой свой участок памяти....
ну или изначально программа чтоли должна тогда будет так работать и расширять память при записи датасекции но зачем когда у пользователя есть свои инструменты для работы с памятью?

Отредактировано Sergeihik (02.04.2022 23:15:38)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Data