Functions.SetAnsi 方法 | |
返回并可选择更改设置,以确定数据库文件是使用ANSI格式还是OEM格式创建,以及某些文本文件操作是否在这两种字符集之间转换。
命名空间:
XSharp.Core
程序集:
XSharp.Core (在 XSharp.Core.dll 中) 版本:2.22 GA
语法 FUNCTION SetAnsi() AS LOGIC
public static bool SetAnsi()
查看代码返回值
类型:
Boolean
如果未指定
lNewSetting,SetAnsi()返回当前设置。
如果指定了
lNewSetting,则返回先前的设置。
备注
SetAnsi()是一个双重目的函数。
首先,它确定用于创建新数据库文件的格式—ANSI,使用Windows字符集,或OEM,使用ASCII字符集。因此,像DBCreate()和DBCopyStruct()这样的函数受此设置的影响。
决定数据库文件ANSI/OEM格式的信息存储在文件的头记录中。
重要提示!
如果您的应用程序必须与基于DOS的产品共享数据,无论是同时还是不同时间,都必须在创建.DBF文件时使用OEM格式。
如果SetAnsi()为TRUE,您的X#应用程序将在处理为OEM格式的现有数据库文件时自动进行ANSI和OEM之间的转换,从而保留数据的格式并允许其被不支持ANSI格式的其他应用程序使用。
如果SetAnsi()为FALSE,则在读取或写入任何数据库文件时不会执行自动转换。在这种情况下,数据将在运行时显示为从磁盘读取的内容。
对于OEM数据库,因此,程序员完全负责显示数据或通过任何编辑控制或终端功能修改的数据的ANSI/OEM转换。您可以使用Ansi2Oem()和Oem2Ansi()函数在这两种格式之间转换数据。
SetAnsi()的第二个目的控制读取和写入文本文件的函数如何处理这两种不同的字符集。当SetAnsi()为FALSE时,从文本文件读取(FReadText()和MemoRead())和写入文本文件(FWriteText()和MemoWrit())的函数会自动在ANSI和OEM之间转换。当SetAnsi()为TRUE时,这些函数不进行转换。
不管SetAnsi()如何,使用FRead()、FWrite()和相关函数读取或写入的所有数据都不会转换为OEM字符集。
示例
此示例在应用程序开始时存储SetAnsi()设置,并在结束时恢复到其原始设置:
1METHOD Start() CLASS App
2 LOCAL lAnsiSetting AS LOGIC
3 lAnsiSetting := SetAnsi(FALSE)
4 ...
5 SetAnsi(lAnsiSetting)
参见