量化交易之MQL4篇 - 文件及文件夹相关操作函数
string foo;void OnStart() {
// 文件夹及相关操作函数
// 创建/删除 abc 文件夹
FolderCreate("abc", 0);
FolderDelete("abc", 0);
// 清除 abc文件夹里面的所有文件
FolderClean("abc", 0);
// 文件及相关操作函数
// 将 a 文件夹下面的a.txt文件 移动/copy到 b文件夹下面 并重新命名为abc.txt
if(FileMove("a//a.txt", 0, "b//abc.txt", 0) == false){
Alert(GetLastError());
}
if(FileCopy("a//a.txt", 0, "b//abc.txt", 0) == false){
Alert(GetLastError());
}
// 删除文件
FileDelete("text.csv");
if(FileIsExist() == true) {
Print("文件存在");
} else {
Print("文件不存在");
}
string fileName;
// "*"表示搜索文件的条件, eg:如果想搜索包含t的文件用"t*"来表示
long fff = FileFindFirst("*", fileName, 0);
if(fff != INVALID_HANDLE) {
// 如果当前目录还有下一个文件
while(FileFindNext(fff, fileName) == true) {
//
//
}
}
// 文件内容操作函数
// FILE_CSV: 打开csv文件, FILE_SHARE_READ: 多个路径可以同时访问
int h = FileOpen("text.csv", FILE_READ|FILE_WRITE|FILE_CSV|FILE_SHARE_READ, ',', CP_ACP);
if(h != INVALID_HANDLE) {
// 将文件写入到缓存中
FileWrite(h, Symbol(), High, Open, Low, Close);
FileWrite(h, Symbol(), High, Open, Low, Close); // 写入到csv文件的第二行
// 写入的数组必须要是字符串数组;
foo = High;
foo = Open;
foo = Low;
foo = Close;
FileWriteArray(h, foo, 0, WHOLE_ARRAY);
// 把当前缓存的内容写入到文件里
FileFlush(h);
// 不能紧跟着FileWrite函数之后使用
string read;
ulong ft = 0;
while(FileIsEnding(h) == false) {
if(FileIsLineEnding(h) == true) {
Print(read);
read = "";
}
// 强制光标移动到文件中 16 的位置
FileSeek(h, 16, SEEK_SET);
// 读取光标在文件中的位置
ft = FileTell(h);
read += FileReadString(h, 0);
ft = FileTell(h);
}
// 调用FileClose的时候会把当前缓存的内容一次性写入文件
FileClose(h);
}
}
楼主66666
页:
[1]