新手提问,敬请回答.(100分)

  • 主题发起人 主题发起人 yjfculy
  • 开始时间 开始时间
Y

yjfculy

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个新手正在学PASCAL语言.
问题1:DELPHI要求数据类型比较严谨,假如我候把一个integer型的字符赋值给一个string型的变量就需要用转换字符类型,我想问关于此方面的转涵数是什么?
问题2:PASCAL语言,如何读取系统日期和时间?
 
inttostr()
strtoint()
floattostr()
strtofloat() ....
时间
now(),date(),
 
1 IntToStr
2 Now(),Date(),Time()
 
非常感谢.
 
格式化字符串
使用加号(+)操作符和转换函数(如IntToStr),你确实能把已有值组合成字符串,不过另有一种方法能格式化数字、货币值和其他字符串,这就是功能强大的Format 函数及其一族。
Format 函数参数包括:一个基本文本字符串、一些占位符(通常由%符号标出)和一个数值数组,数组中每个值对应一个占位符。例如,把两个数字格式化为字符串的代码如下:
Format ('First %d, Second %d', [n1, n2]);
其中n1和n2是两个整数值,第一个占位符由第一个值替代,第二个占位符由第二个值替代,以此类推。如果占位符输出类型(由%符号后面的字母表示)与对应的参数类型不匹配,将产生一个运行时间错误,因此设置编译时间类型检查会有利于Format 函数的使用。
除了%d外,Format 函数还定义了许多占位符,见表7.1。这些占位符定义了相应数据类型的默认输出,你可以用更深一层的格式化约束改变默认输出,例如一个宽度约束决定了输出中的字符个数,而精度约束决定了小数点的位数。例如
Format ('%8d', [n1]);
该句把数字n1转换成有8个字符的字符串,并通过填充空白使文本右对齐,左对齐用减号(-) 。
表 7.1: Format函数的占位符
占位符 说明
d (decimal) 将整型值转换为十进制数字字符串
x (hexadecimal) 将整型值转换为十六进制数字字符串
p (pointer) 将指针值转换为十六进制数字字符串
s (string) 拷贝字符串、字符、或字符指针值到一个输出字符串
e (exponential) 将浮点值转换为指数表示的字符串
f (floating point) 将浮点值转换为浮点表示的字符串
g (general) 使用浮点或指数将浮点值转换为最短的十进制字符串
n (number) 将浮点值转换为带千位分隔符的浮点值
m (money) 将浮点值转换为现金数量表示的字符串,转换结果取决于地域设置,详见Delphi帮助文件的Currency and date/time formatting variables主题

领会以上内容最好的办法是你亲自进行字符串格式化试验。为了简便起见,我写了FmtTest 程序,它能将整数和浮点数转换为格式化字符串。从图7.2可见,程序窗体分为左右两部分,左边对应整型数字转换,右边对应浮点数转换。
各部分的第一个编辑框显示需要格式化为字符串的数值。第一个编辑框下方有一个按钮,用来执行格式化操作并在消息框中显示结果;紧接着第二个编辑框用于输入格式化类型串。你也可以单击ListBox 控件中的任一行,选择预定义的格式化类型串,也可以自行输入,每输入一个新的格式化类型串,该类型串就会被添加到列表框中(注意,关闭程序就失去了添加的类型)。
 
如果需要显示特定的时间格式可以用formatdatetime(const FORMAT:string;DateTime:Tdatetime):string函数
 
多人接受答案了。
 
后退
顶部