在编译时存储数据的声明。
语法
Data constant_expression1 [,constant_expression2 ]...
说明
Data存储在编译时评估的常量数字或字母表达式列表(
-lang qb 除外),并存储为可以使用
Read读入变量的常量。
程序中的所有
Data语句都表现为单链表;在读取一个
Data语句的最后一个元素之后,将读取以下
Data语句的第一个元素。
程序不应在最后一个
Data元素之后尝试
Read.结果(在所有方言中)未定义,程序可能会崩溃(页面错误)。
Data语句只能在定义它们的模块中可见;它们必须只输入模块级代码。
Data常量只能是简单的类型(数字或字符串)。数字值可以作为数字字面值读入字符串。读入数字变量的字符串将由
Val函数求值。
Const可用作数据项,除
-lang qb 方言之外,其名称被视为普通文本。
“
Restore label ”语句使第一个
Data项目在
label 下一个要读取的项目之后,允许用户选择要读取的特定数据段。
Data通常用于初始化变量。FreeBASIC还允许在
Dim进行时初始化静态变量 - 有关详细信息,请参阅
可变初始化器.
例子
'创建一个数组的5个整数和一个字符串来保存数据。
Dim As Integer h(4)
Dim As String hs
Dim As Integer readindex
'设置循环5次(5个数字...检查数据)
For readindex = 0 To 4
'读取整数。
Read h(readindex)
'显示它。
Print "数" ; readindex ; "=" ; h(readindex)
Next readindex
'间隔。
Print
'读一个字符串。
Read hs
'打印
Print "String =" + hs
'等待按键。
Sleep
'退出程序。
End
'数据块
Data 3, 234, 435/4, 23+433, 87643, "好" + "再见!"
方言差异
- -lang fb 和-lang fblite 将数据项视为在编译期间评估的常量表达式,其结果存储在程序中。
- -lang qb 将未引用的单词(包括变量和常量的名称)视为文字字符串,并将其存储为不改变,如QBASIC中所示。未引用的字符串由逗号分隔,冒号或换行符表示数据语句的结尾。开始和结束时,未引用的字符串被修剪为空格。
与QB差别
- 在-lang qb 方言之外,字母字符串文字必须用引号括起来,在QBASIC中,这是可选的。
- 在QBASIC空项目评估为数字0 或空字符串,在FreeBASIC他们给出一个编译错误。在QBASIC中,语句结尾处的逗号作了一个额外的空项目,评估为0 或一个空字符串。在FreeBASIC中,它们发出编译错误。
参考