#文件打开函数FILEOPEN(var1,var2)是内置函数,有两个参数;
#var1是字符串,是文件名(含路径,如果没有路径则默认为当前目录:finevirt.exe所在目录位置)
#var2是字符串,表明打开文件方式
#var2 = "r",以只读方式打开文件,打开后文件指针指向文件头部
#var2 = "rb",以二进制格式,只读方式打开文件,打开后文件指针指向文件头部
#var2 = "r+",打开文件用于读写,打开后文件指针指向文件头部
#var2 = "w",打开文件,只用于写入。如果文件已存在,将覆盖原内容,如果不存在,则创建新文件
#var2 = "wb",同上,区别在于以二进制格式打开文件
#var2 = "w+",打开一个文件用于读写。如果文件已存在,将覆盖原内容,如果不存在,则创建新文件
#var2 = "wb+",同上,区别在于以二进制格式打开文件
#var2 = "a",打开一个文件用于追加内容,如果文件存在,指针指向尾部,如不存在,创建新文件
#var2 = "ab",同上,区别在于以二进制格式打开文件
#var2 = "a+",打开文件用于读写,如存在,指向尾部,如不存在,创建新文件,用于读写
#var2 = "ab+",同上,区别在于以二进制格式打开文件
# 例程1:只读方式打开文件,如果文件不存在,则报错
fp = FILEOPEN("test.txt","r") # 打开文件(文本、只读方式)
if fp == False
{
print("%\n","打开文件出错!")
}
else
{
str = fp.read() #读取当前目录下,copy00.txt文件的全部内容,保存在字符串中
fp.close() #关闭已经打开的文件
print("%\n",str)
}
# 例程2: 只读方式打开文件,如果文件不存在,则报错
# string = fp.read(var)参数是将要读取的字节数,返回所读取的字符串
fp = FILEOPEN("test.txt","r") # 打开文件(文本、只读方式)
if fp == False # 如果打开文件出错,返回False
{
print("%\n","打开文件出错!")
}
else #
{
str = fp.read(21) # 读取20个字节的内容(该方法通常用于读取二进制文件,如果读取文本文件,可能会读出“半个汉字”)
str1 = fp.read(19) # 接着上次读出的位置,继续读出20个字节
fp.close() # 关闭已经打开的文件
print("%\n",str) # 由于第21个字符是汉子的第一个字节,因此,最后显示?
print("%\n",str1) # 由于str1的第一个字节是汉子的第二个字节,因此,显示乱码。
print("%\n")
str = str +str1 # 将两个字符串拼接在一起,打印出正确的内容
print("%\n",str)
}
# 例程3: 从文件当前位置读取一行内容
# string = fp.readline()无参数 ,返回所读取的一行字符串
fp = FILEOPEN("test.txt","r") # 打开文件(文本、只读方式)
if fp == False # 如果打开文件出错,返回False
{
print("%\n","打开文件出错!")
}
else
{
str = fp.readline() # 读取一行内容,保存在字符串中
fp.close() # 关闭已经打开的文件
print("%\n",str)
}
# 例程4: 读取全部文件,每一行作为一个列表项(保留换行符),保存在一个列表中
# list = fp.readlines()无参数,返回一个列表,包含全部文件,每一行作为一个列表项
fp = FILEOPEN("test.txt","r") # 打开文件(文本、只读方式)
if fp == False # 如果打开文件出错,返回False
{
print("%\n","打开文件出错!")
}
else
{
list = fp.readlines() # 读取全部文件,每一行作为一个列表项,返回该列表
fp.close() # 关闭已经打开的文件
for i in list # 遍历列表
{
print("%",i) # 打印出列表的每一项
}
}
# 例程5 写入字符串,如果有文件,覆盖原文件,如果没有,创建新文件
# 使用fp.write(str)将字符串str写入文件copy40.txt中。返回:无返回
gui = GUI() # 定义GUI对象,用于图形界面显示
#gui.HideConsoleWindow() # 隐藏控制台窗口
string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。"
fp = FILEOPEN("test1.txt","r") # 打开文件(文本、只写方式)
if fp != False # 如果文件能正确打开,说明文件已经存在
{
box = gui.MessageBox("文件test1.txt已经存在,是否要覆盖原文件?","确定|取消")
while gui.MessageBoxClosed(box) != -1
{
PowerDown(3)
}
select = gui.MessageBoxRead(box) # 读取选择结果保存到变量select中
if select == 0 # select = 0说明点击的是“确定”按钮
{
fp1 = FILEOPEN("test1.txt","w") # 覆盖掉原文件
fp1.write(string)
fp1.close()
}
fp.close() # 关闭已经打开的文件
}
else # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件
{
fp1 = FILEOPEN("test1.txt","w") # 写入新文件
fp1.write(string)
fp1.close()
}
# 例程6 用读、写方式打开文件,将字符串str写入文件
# fp.write(str)参数是字符串,返回:无返回
gui = GUI() # 定义GUI对象,用于图形界面显示
#gui.HideConsoleWindow() # 隐藏控制台窗口
string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。"
fp = FILEOPEN("test.txt","r") # 打开文件(文本、读写方式)
if fp != False # 如果文件能正确打开,说明文件已经存在
{
box = gui.MessageBox("文件test.txt已经存在,是否要覆盖原文件?","确定|取消")
while gui.MessageBoxClosed(box) != -1 {PowerDown(3)}
select = gui.MessageBoxRead(box) # 将选择结果保存到变量select中
if select == 0 # select = 0说明点击的是“确定”按钮
{
fp1 = FILEOPEN("test.txt","w+") # 覆盖掉原文件
fp1.write(string)
str = fp1.read()
fp1.close()
print("%\n",str)
}
fp.close() # 关闭已经打开的文件
}
else # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件
{
fp1 = FILEOPEN("test.txt","w+") # 写入新文件
fp1.write(string)
str = fp1.read()
fp1.close()
print("%\n",str)
}
# 例程7: 写入字符串,如果有文件,指向文件底部,如果没有,创建新文件,然后再读出显示
gui = GUI() # 定义GUI对象,用于图形界面显示
#gui.HideConsoleWindow() # 隐藏控制台窗口
string = "abcdefg中文\n床前明月光,疑是地上霜;举头望明月,低头思故乡。\n"
fp = FILEOPEN("test.txt","r") # 打开文件(文本、读写方式)
if fp != False # 如果文件能正确打开,说明文件已经存在
{
box = gui.MessageBox("文件test.txt已经存在,是否要覆盖原文件?","确定|取消")
while gui.MessageBoxClosed(box) != -1 {PowerDown(3)}
select = gui.MessageBoxRead(box) # 将选择结果保存到变量select中
if select == 0 # select = 0说明点击的是“确定”按钮
{
fp1 = FILEOPEN("test.txt","a+") # 覆盖掉原文件
fp1.write(string)
str = fp1.read()
fp1.close()
print("%\n",str)
}
fp.close() # 关闭已经打开的文件
}
else # 如果打不开copy00.txt文件,说明文件不存在,下面写入文件
{
fp1 = FILEOPEN("test.txt","a+") # 写入新文件
fp1.write(string)
str = fp1.read()
fp1.close()
print("%\n",str)
}