[English Version]

MFP语言和可编程科学计算器

MFP语言简介

MFP函数

所有函数

整数操作函数

逻辑函数

统计和随机函数

三角函数

指数函数

复数函数

系统函数

数组和矩阵函数

绘图函数

表达式和微积分函数

字符串函数

双曲三角函数

排序函数

多项式函数

信号处理函数

文件操作函数

时间和日期函数

显示函数

多媒体函数

数据结构函数

数据交换文件格式函数

平台和硬件函数

并行计算函数

RTC多媒体函数

反射函数

MFP编译函数

其它函数

部署用户自定义函数

在您的应用中调用MFP

创建安卓安装包

小游戏的开发

绘制图形

使用MFP进行数学分析

使用MFP处理文件

数,字符串和数组

日期时间和系统相关

可编程科学计算器介绍

可编程科学计算器帮助:文件函数

函数名 函数帮助信息
cd

::mfp::io::file::cd(1) :

change_dir(path)(别名cd(path))将当前路径变为字符串路径path。如果成功,返回true,否则返回false。例子包括change_dir("D:\\Windows") (Windows)和cd("/") (Android)。

change_dir

::mfp::io::file::change_dir(1) :

change_dir(path)(别名cd(path))将当前路径变为字符串路径path。如果成功,返回true,否则返回false。例子包括change_dir("D:\\Windows") (Windows)和cd("/") (Android)。

copy_file

::mfp::io::file::copy_file(3) :

copy_file(source, destination, replace_exist)函数拷贝位于字符串source路径的文件或文件夹到位于字符串destination路径的文件或文件夹。如果第三个参数,replace_exist,是true,那么如果目标文件已经存在,它将会被源文件(或者源文件夹中的对应文件)替换。注意第三个参数可以省略,它的缺省值为false。 例子包括copy_file("c:\\temp\\try1", "D:\\", true) (Windows)和copy_file("/mnt/sdcard/testfile.txt", "./testfile_copy.txt") (Android)。

create_file

::mfp::io::file::create_file(2) :

create_file(path, is_folder)创建一个文件(如果is_folder是false或者不存在)或者目录(如果if_folder是true)。如果这个基于字符串的路径path的上级目录不存在,不存在的上级目录将会被创建。如果文件能够被创建,这个函数返回true,否则返回false。例子包括create_file("c:\\temp\\try1", true) (Windows)和create_file("testfile_copy.txt") (Android)。

delete_file

::mfp::io::file::delete_file(2) :

delete_file(path, delete_children_in_folder)删除一个位于字符串path的文件或者目录。如果是一个目录且第二个参数delete_children_in_folder是true,目录中的所以文件和子目录将会被删除。注意第二个参数可以省略,它的缺省值是false。如果删除成功,本函数返回true,否则返回false。例子包括delete_file("c:\\temp\\try1", true) (Windows)和delete_file("testfile_copy.txt") (Android)。

dir

::mfp::io::file::dir(1) :

print_file_list(path) (别名ls(path)或者dir(path))函数和Windows平台上的dir命令以及Linux平台上的ls命令类似。它打印出位于字符串path路径的文件或者目录中的所有子文件和子目录的信息。它返回打印的条目的个数。如果不存在一个文件或者目录对应于path路径,它返回-1。注意参数path是可以省略的。它的缺省值是当前目录。例子包括dir() (Windows)和ls("../testfile_copy.txt") (Android)。

fclose

::mfp::io::file::fclose(1) :

fclose(fd)关闭文件号fd所对应的文件。如果文件号不存在,返回-1,否则返回0。

feof

::mfp::io::file::feof(1) :

feof(fd)用于确定是否已经到达文件号为fd的读模式文件的末尾。如果是,返回true,否则返回false。如果文件号不合法,抛出异常。

fopen

::mfp::io::file::fopen(2) :

fopen(path, mode)打开位于path路径的文件并返回文件号以进行后续读写操作。它和C以及Matlab中的同名函数用法相似。但它仅支持"r"、"a"、"w"、"rb"、"ab"和"wb"六种读写模式。例子包括fopen("C:\\Temp\\Hello.dat", "ab") (Windows)和fopen("./hello.txt", "r") (Android)。

::mfp::io::file::fopen(3) :

fopen(path, mode, encoding)用字符编码encoding打开位于path路径的文件并返回文件号以进行后续读写操作。由于只有文本文件支持字符编码,参数mode只能为"r"、"a"和"w"3种读写模式。例子包括fopen("C:\\Temp\\Hello.txt", "a", "LATIN-1") (Windows)和fopen("./hello.txt", "r", "UTF-8") (Android)。

fprintf

::mfp::io::file::fprintf(2...) :

printf(format_string, ...),sprintf(format_string, ...)和fprintf(fd, format_string, ...)和C/C++中的对应函数工作方式相似。这些函数通过format_string和其后的数值参数构造出一个新的字符串,printf函数将字符串打印到标准输出,sprintf函数将字符串作为返回值返回,fprintf函数则将字符串输出到文件号为fd的文本文件。字符串format_string支持输入整数(%d、%i、%x等),浮点数(%e、%f等),字符和字符串(%c和%s)等等。用户可以在C语言的帮助文档中找到format_string的构造方法。例如,printf("Hello world!%f", 3.14)将会打印输出"Hello world!3.140000",而sprintf("%c%d", "A", 9)则返回"A9"(注意MFP不支持单一字符数据类型,所以单一的字符将会存储为一个只包括一个字符的字符串)。

fread

::mfp::io::file::fread(4) :

fread(fd, buffer, from, length)从文件(文件号fd)中读取length个字节数据,并把读出的数据保存在数组buffer中(从buffer的索引from开始保存)。注意from和length必须非负,并且from+length必须不比buffer的容量大。参数from和length可以同时省略。如果它们被省略,意味着fread读取整个buffer容量的字节数据并保存在整个buffer中。Buffer也可以省略,如果buffer省略,fread读取一个字节并返回。如果fread在读取之前发现已经到达文件末尾,则返回-1,否则返回读取字节的个数(如果buffer不省略)。如果文件不存在或非法或不可以访问,将会抛出异常。例子包括fread(1)、fread(2, byte_buffer)以及fread(2, byte_buffer, 3, 7)。

freadline

::mfp::io::file::freadline(1) :

freadline(fd)读取文本文件(文件号是fd)的一行。如果freadline在读取之前发现已经到达文件末尾,它返回NULL。否则,它返回基于字符串的这一行的内容,但不包括结尾的换行符。

fscanf

::mfp::io::file::fscanf(2) :

scanf(format_string),sscanf(input_from, format_string)和fscanf(fd, format_string)和C/C++中的对应函数工作方式相似。scanf读取用户的一行输入,sscanf读取字符串input_from,fscanf从文件(文件号fd)中读取文件内容。字符串format_string支持输入整数(%d、%i、%x等),浮点数(%e、%f等),字符和字符串(%c和%s)等等。用户可以在C语言的帮助文档中找到format_string的构造方法。但是,和C语言有所不同,MFP中的这些函数不需要输入用于存储读取数值的参数。所有的读取的数值将会保存在一个数组中作为返回值返回。比如,sscanf("3Hello world!", "%d%c%c%s")将会返回[3, "H", "e", "llo"](注意MFP不支持单一字符数据类型,所以单一的字符将会存储为一个只包括一个字符的字符串)。

fwrite

::mfp::io::file::fwrite(4) :

fwrite(fd, buffer, from, length)向文件(文件号fd)中写入length个字节数据。这些字节数据保存在数组buffer中(从buffer的索引from开始)。注意from和length必须非负,并且from+length必须不比buffer的容量大。参数from和length可以同时省略。如果它们被省略,意味着fwrite写入整个buffer的字节数据。Buffer也可以是一个单独的字节,在这种情况下fwrite仅写入一个字节的数据。如果文件不存在或非法或不可以访问,将会抛出异常。例子包括fwrite(1, 108)、fwrite(2, byte_buffer)以及fwrite(2, byte_buffer, 3, 7)。

get_absolute_path

::mfp::io::file::get_absolute_path(1) :

get_absolute_path(fd_or_path)返回文件号fd_or_path(这里fd_or_path是一个整数)或者相对路径为fd_or_path(这里fd_or_path是一个字符串)所对应的文件的绝对路径字符串。

get_canonical_path

::mfp::io::file::get_canonical_path(1) :

get_canonical_path(fd_or_path)返回文件号fd_or_path(这里fd_or_path是一个整数)或者相对路径为fd_or_path(这里fd_or_path是一个字符串)所对应的文件的标准路径(不依赖符号链接的绝对路径)字符串。

get_file_last_modified_time

::mfp::io::file::get_file_last_modified_time(1) :

get_file_last_modified_time(path)返回基于字符串路径的path的文件或目录的上一次更改时间。该时间等于从1970年1月1日午夜开始到上一次更改时刻所经历的毫秒数。如果path不存在或者没有访问权限,返回-1。

get_file_path

::mfp::io::file::get_file_path(1) :

get_file_path(fd)返回文件号fd(fd是一个整数)所对应的文件的路径字符串。

get_file_separator

::mfp::io::file::get_file_separator(0) :

get_file_separator()返回路径分割符。在Windows平台下返回字符串"\\",在Linux和Android平台下返回字符串"/"。

get_file_size

::mfp::io::file::get_file_size(1) :

get_file_size(path)返回基于字符串路径的path的文件大小。如果path不是对应一个文件或者没有权限或者不存在,返回-1。

get_src_file_path

::mfp::io::file::get_src_file_path(0) :

这个函数返回当前脚本的完整路径。当前脚本是调用get_src_file_path的脚本。如果本函数在命令提示符中被调用,则返回null。

get_upper_level_path

::mfp::io::file::get_upper_level_path(1) :

本函数返回参数字符串的上层目录(也是一个字符串)。比如,get_upper_level_path("abc/def")和get_upper_level_path("abc/def/")在安卓上都返回"abc/"。但是,要注意如果上层目录是非法目录,它返回null。比如get_upper_level_path("")和get_upper_level_path("/")均返回null。原因是""和"/"的上层目录均不存在。

get_working_dir

::mfp::io::file::get_working_dir(0) :

get_working_dir()(别名pwd())返回基于字符串的当前路径。

is_directory

::mfp::io::file::is_directory(1) :

is_directory(path)用于判断位于字符串path的文件(或者目录)是否是一个目录。如果该文件或目录存在并且是一个目录返回true,否则返回false。例子包括is_directory("E:\\") (Windows)和is_directory("/home/tony/Documents/cv.pdf") (Android)。

is_file_executable

::mfp::io::file::is_file_executable(1) :

is_file_executable(path)用于判断位于字符串path的文件(或者目录)是否可执行。如果该文件或目录存在并且可执行返回true,否则返回false。例子包括is_file_executable("E:\\") (Windows)和is_file_executable("/home/tony/Documents/cv.pdf") (Android)。

is_file_existing

::mfp::io::file::is_file_existing(1) :

is_file_existing(path)用于判断位于字符串path的文件(或者目录)是否存在。如果存在返回true,否则返回false。例子包括is_file_existing("E:\\") (Windows)和is_file_existing("/home/tony/Documents/cv.pdf") (Android)。

is_file_hidden

::mfp::io::file::is_file_hidden(1) :

is_file_hidden(path)用于判断位于字符串path的文件(或者目录)是否隐藏。如果该文件或目录存在并且隐藏返回true,否则返回false。例子包括is_file_hidden("E:\\") (Windows)和is_file_hidden("/home/tony/Documents/cv.pdf") (Android)。

is_file_normal

::mfp::io::file::is_file_normal(1) :

is_file_normal(path)用于判断位于字符串path的文件(或者目录)是否是一个常规文件而不是目录。如果该文件或目录存在并且是一个常规文件而不是目录返回true,否则返回false。例子包括is_file_normal("E:\\") (Windows)和is_file_normal("/home/tony/Documents/cv.pdf") (Android)。

is_file_readable

::mfp::io::file::is_file_readable(1) :

is_file_readable(path)用于判断位于字符串path的文件(或者目录)是否可读。如果该文件或目录存在并且可读返回true,否则返回false。例子包括is_file_readable("E:\\") (Windows)和is_file_readable("/home/tony/Documents/cv.pdf") (Android)。

is_file_writable

::mfp::io::file::is_file_writable(1) :

is_file_writable(path)用于判断位于字符串path的文件(或者目录)是否可写。如果该文件或目录存在并且可写返回true,否则返回false。例子包括is_file_writable("E:\\") (Windows)和is_file_writable("/home/tony/Documents/cv.pdf") (Android)。

is_path_absolute

::mfp::io::file::is_path_absolute(1) :

is_path_absolute(path)用于判断位于字符串path是否是一个绝对路径(也就是不是相对于当前目录的路径)。如果是返回true,否则返回false。例子包括is_path_absolute("E:\\temp") (Windows)和is_path_absolute("Documents/cv.pdf") (Android)。

is_path_parent

::mfp::io::file::is_path_parent(2) :

is_path_parent(path1, path2)用于判断位于字符串path1是否是字符串path2的上级目录。如果是返回true,否则返回false。例子包括is_path_parent("E:\\temp", "E:\\temp\\..\\temp\\test") (Windows)和is_path_parent(".", "Documents/cv.pdf") (Android)。

is_path_same

::mfp::io::file::is_path_same(2) :

is_path_same(path1, path2)用于判断位于字符串path1是否和字符串path2指向同一条路径。如果是返回true,否则返回false。例子包括is_path_same("E:\\temp", "E:\\temp\\..\\temp\\") (Windows)和is_path_parent("/home/tony/Documents", "Documents/") (Android)。

is_symbol_link

::mfp::io::file::is_symbol_link(1) :

is_symbol_link(path)用于判断位于字符串path的文件(或者目录)是否是一个符号链接。如果该文件或目录存在并且是一个符号链接返回true,否则返回false。例子包括is_symbol_link("E:\\") (Windows)和is_symbol_link("/home/tony/Documents/cv.pdf") (Android)。

list_files

::mfp::io::file::list_files(1) :

list_files(path)返回位于字符串path路径的目录中的所有子文件或者子目录的名字,或者如果path路径对应的是一个文件,它返回该文件的文件名。如果不存在一个文件或者目录对应于path路径,它返回NULL。注意参数path是可以省略的。它的缺省值是当前目录。例子包括list_files("c:\\temp\\try1") (Windows)和list_files("../testfile_copy.txt") (Android)。

ls

::mfp::io::file::ls(1) :

print_file_list(path) (别名ls(path)或者dir(path))函数和Windows平台上的dir命令以及Linux平台上的ls命令类似。它打印出位于字符串path路径的文件或者目录中的所有子文件和子目录的信息。它返回打印的条目的个数。如果不存在一个文件或者目录对应于path路径,它返回-1。注意参数path是可以省略的。它的缺省值是当前目录。例子包括dir() (Windows)和ls("../testfile_copy.txt") (Android)。

move_file

::mfp::io::file::move_file(3) :

move_file(source, destination, replace_exist)函数移动位于字符串source路径的文件或文件夹到位于字符串destination路径的文件或位于destination路径的文件夹内(而不是位于destination路径的文件夹本身)。如果第三个参数,replace_exist,是true,那么如果目标文件已经存在,它将会被源文件(或者源文件夹中的对应文件)替换。注意第三个参数可以省略,它的缺省值为false。例子包括move_file("c:\\temp\\try1", "D:\\", true) (Windows)和copy_file("/mnt/sdcard/testfile.txt", "./testfile_copy.txt") (Android)。

print_file_list

::mfp::io::file::print_file_list(1) :

print_file_list(path) (别名ls(path)或者dir(path))函数和Windows平台上的dir命令以及Linux平台上的ls命令类似。它打印出位于字符串path路径的文件或者目录中的所有子文件和子目录的信息。它返回打印的条目的个数。如果不存在一个文件或者目录对应于path路径,它返回-1。注意参数path是可以省略的。它的缺省值是当前目录。例子包括dir() (Windows)和ls("../testfile_copy.txt") (Android)。

pwd

::mfp::io::file::pwd(0) :

get_working_dir()(别名pwd())返回基于字符串的当前路径。

read_file

::mfp::io::file::read_file(2) :

函数read_file读入一个文件并返回该文件的内容。它有两个参数。第一个参数是文件的路径。第二个参数是读入模式。读入模式是一个字符串。如果读入模式是"b"或者"B"意味着以以二进制方式读入,该函数会返回一个二进制数组。如果是其它字符串,则意味着以文本方式读入,该函数会返回一个字符串。第二个参数可以省略。在第二个参数缺省时本函数以文本方式读入文件并返回字符串 。

set_file_last_modified_time

::mfp::io::file::set_file_last_modified_time(2) :

set_file_last_modified_time(path, time)设置基于字符串路径的path的文件或目录的上一次更改时间为time。该时间等于从1970年1月1日午夜开始到上一次更改时刻所经历的毫秒数。如果path不存在或者没有访问权限,返回false,否则返回true。例子包括("C:\\Temp\\Hello\\", 99999999) (Windows)和set_file_last_modified_time("./hello.txt", 1111111111) (Android)。