文件处理函数 [File Functions]
<-- begin content -->由 帝国程序员 在 周日, 2005-10-23 18:16 提交
void FileDelete(string filename)
删除文件,如果发生错误可以通过GetLastError()来查询
注:你只能操作terminal_dir\experts\files目录下的文件
void FileFlush(int handle)
将缓存中的数据刷新到磁盘上去
bool FileIsEnding(int handle)
检查是否到了文件尾.
bool FileIsLineEnding( int handle)
检查行是否到了结束
int FileOpen( string filename, int mode, int delimiter=';')
打开文件,如果失败返回值小于1,可以通过GetLastError()获取错误
注:只能操作terminal_dir\experts\files目录的文件
int FileOpenHistory( string filename, int mode, int delimiter=';')
打开历史数据文件,如果失败返回值小于1,可以通过GetLastError()获取错误
int FileReadArray( int handle, object& array[], int start, int count)
将二进制文件读取到数组中,返回读取的条数,可以通过GetLastError()获取错误
注:在读取之前要调整好数组大小
double FileReadDouble( int handle, int size=DOUBLE_VALUE)
从文件中读取浮点型数据,数字可以是8byte的double型或者是4byte的float型。
int FileReadInteger( int handle, int size=LONG_VALUE)
从文件中读取整形型数据,数字可以是1,2,4byte的长度
double FileReadNumber( int handle)
从文件中读取数字,只能在CSV里使用
string FileReadString( int handle, int length=0)
从文件中读取字符串
bool FileSeek( int handle, int offset, int origin)
移动指针移动到某一点,如果成功返回true
int FileSize( int handle)
返回文件大小
int FileTell( int handle)
返回文件读写指针当前的位置
int FileWrite( int handle, ... )
向文件写入数据
int FileWriteArray( int handle, object array[], int start, int count)
向文件写入数组
int FileWriteDouble( int handle, double value, int size=DOUBLE_VALUE)
向文件写入浮点型数据
int FileWriteInteger( int handle, int value, int size=LONG_VALUE)
向文件写入整型数据
int FileWriteString( int handle, string value, int length)
向文件写入字符串数据
void FileClose(int handle)
关闭正在已经打开的文件.
示例:
int handle=FileOpen("filename", FILE_CSV|FILE_READ);
if(handle>0)
{
// working with file ...
FileClose(handle);
}
if(handle>0)
{
// working with file ...
FileClose(handle);
}
void FileDelete(string filename)
删除文件,如果发生错误可以通过GetLastError()来查询
注:你只能操作terminal_dir\experts\files目录下的文件
示例:
// file my_table.csv will be deleted from terminal_dir\experts\files directory
int lastError;
FileDelete("my_table.csv");
lastError=GetLastError();
if(laseError!=ERR_NOERROR)
{
Print("An error ocurred while (",lastError,") deleting file my_table.csv");
return(0);
}
int lastError;
FileDelete("my_table.csv");
lastError=GetLastError();
if(laseError!=ERR_NOERROR)
{
Print("An error ocurred while (",lastError,") deleting file my_table.csv");
return(0);
}
void FileFlush(int handle)
将缓存中的数据刷新到磁盘上去
示例:
int bars_count=Bars;
int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);
if(handle>0)
{
FileWrite(handle, "#","OPEN","CLOSE","HIGH","LOW");
for(int i=0;i FileWrite(handle, i+1,Open[i],Close[i],High[i], Low[i]);
FileFlush(handle);
...
for(int i=0;i FileWrite(handle, i+1,Open[i],Close[i],High[i], Low[i]);
FileClose(handle);
}
int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);
if(handle>0)
{
FileWrite(handle, "#","OPEN","CLOSE","HIGH","LOW");
for(int i=0;i
FileFlush(handle);
...
for(int i=0;i
FileClose(handle);
}
bool FileIsEnding(int handle)
检查是否到了文件尾.
示例:
if(FileIsEnding(h1))
{
FileClose(h1);
return(false);
}
{
FileClose(h1);
return(false);
}
bool FileIsLineEnding( int handle)
检查行是否到了结束
示例:
if(FileIsLineEnding(h1))
{
FileClose(h1);
return(false);
}
{
FileClose(h1);
return(false);
}
int FileOpen( string filename, int mode, int delimiter=';')
打开文件,如果失败返回值小于1,可以通过GetLastError()获取错误
注:只能操作terminal_dir\experts\files目录的文件
示例:
int handle;
handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');
if(handle<1)
{
Print("File my_data.dat not found, the last error is ", GetLastError());
return(false);
}
handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');
if(handle<1)
{
Print("File my_data.dat not found, the last error is ", GetLastError());
return(false);
}
int FileOpenHistory( string filename, int mode, int delimiter=';')
打开历史数据文件,如果失败返回值小于1,可以通过GetLastError()获取错误
示例:
int handle=FileOpenHistory("USDX240.HST",FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("Cannot create file USDX240.HST");
return(false);
}
// work with file
// ...
FileClose(handle);
if(handle<1)
{
Print("Cannot create file USDX240.HST");
return(false);
}
// work with file
// ...
FileClose(handle);
int FileReadArray( int handle, object& array[], int start, int count)
将二进制文件读取到数组中,返回读取的条数,可以通过GetLastError()获取错误
注:在读取之前要调整好数组大小
示例:
int handle;
double varray[10];
handle=FileOpen("filename.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
FileReadArray(handle, varray, 0, 10);
FileClose(handle);
}
double varray[10];
handle=FileOpen("filename.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
FileReadArray(handle, varray, 0, 10);
FileClose(handle);
}
double FileReadDouble( int handle, int size=DOUBLE_VALUE)
从文件中读取浮点型数据,数字可以是8byte的double型或者是4byte的float型。
示例:
int handle;
double value;
handle=FileOpen("mydata.dat",FILE_BIN);
if(handle>0)
{
value=FileReadDouble(handle,DOUBLE_VALUE);
FileClose(handle);
}
double value;
handle=FileOpen("mydata.dat",FILE_BIN);
if(handle>0)
{
value=FileReadDouble(handle,DOUBLE_VALUE);
FileClose(handle);
}
int FileReadInteger( int handle, int size=LONG_VALUE)
从文件中读取整形型数据,数字可以是1,2,4byte的长度
示例:
int handle;
int value;
handle=FileOpen("mydata.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
value=FileReadInteger(h1,2);
FileClose(handle);
}
int value;
handle=FileOpen("mydata.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
value=FileReadInteger(h1,2);
FileClose(handle);
}
double FileReadNumber( int handle)
从文件中读取数字,只能在CSV里使用
示例:
int handle;
int value;
handle=FileOpen("filename.csv", FILE_CSV, ';');
if(handle>0)
{
value=FileReadNumber(handle);
FileClose(handle);
}
int value;
handle=FileOpen("filename.csv", FILE_CSV, ';');
if(handle>0)
{
value=FileReadNumber(handle);
FileClose(handle);
}
string FileReadString( int handle, int length=0)
从文件中读取字符串
示例:
int handle;
string str;
handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);
if(handle>0)
{
str=FileReadString(handle);
FileClose(handle);
}
string str;
handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);
if(handle>0)
{
str=FileReadString(handle);
FileClose(handle);
}
bool FileSeek( int handle, int offset, int origin)
移动指针移动到某一点,如果成功返回true
示例:
int handle=FileOpen("filename.csv", FILE_CSV|FILE_READ, ';');
if(handle>0)
{
FileSeek(handle, 10, SEEK_SET);
FileReadInteger(handle);
FileClose(handle);
handle=0;
}
if(handle>0)
{
FileSeek(handle, 10, SEEK_SET);
FileReadInteger(handle);
FileClose(handle);
handle=0;
}
int FileSize( int handle)
返回文件大小
示例:
int handle;
int size;
handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
size=FileSize(handle);
Print("my_table.dat size is ", size, " bytes");
FileClose(handle);
}
int size;
handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
if(handle>0)
{
size=FileSize(handle);
Print("my_table.dat size is ", size, " bytes");
FileClose(handle);
}
int FileTell( int handle)
返回文件读写指针当前的位置
示例:
int handle;
int pos;
handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
// reading some data
pos=FileTell(handle);
Print("current position is ", pos);
int pos;
handle=FileOpen("my_table.dat", FILE_BIN|FILE_READ);
// reading some data
pos=FileTell(handle);
Print("current position is ", pos);
int FileWrite( int handle, ... )
向文件写入数据
示例:
int handle;
datetime orderOpen=OrderOpenTime();
handle=FileOpen("filename", FILE_CSV|FILE_WRITE, ';');
if(handle>0)
{
FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));
FileClose(handle);
}
datetime orderOpen=OrderOpenTime();
handle=FileOpen("filename", FILE_CSV|FILE_WRITE, ';');
if(handle>0)
{
FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));
FileClose(handle);
}
int FileWriteArray( int handle, object array[], int start, int count)
向文件写入数组
示例:
int handle;
double BarOpenValues[10];
// copy first ten bars to the array
for(int i=0;i<10; i++)
BarOpenValues[i]=Open[i];
// writing array to the file
handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
if(handle>0)
{
FileWriteArray(handle, BarOpenValues, 3, 7); // writing last 7 elements
FileClose(handle);
}
double BarOpenValues[10];
// copy first ten bars to the array
for(int i=0;i<10; i++)
BarOpenValues[i]=Open[i];
// writing array to the file
handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
if(handle>0)
{
FileWriteArray(handle, BarOpenValues, 3, 7); // writing last 7 elements
FileClose(handle);
}
int FileWriteDouble( int handle, double value, int size=DOUBLE_VALUE)
向文件写入浮点型数据
示例:
int handle;
double var1=0.345;
handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteDouble(h1, var1, DOUBLE_VALUE);
//...
FileClose(handle);
double var1=0.345;
handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteDouble(h1, var1, DOUBLE_VALUE);
//...
FileClose(handle);
int FileWriteInteger( int handle, int value, int size=LONG_VALUE)
向文件写入整型数据
示例:
int handle;
int value=10;
handle=FileOpen("filename.dat", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteInteger(handle, value, SHORT_VALUE);
//...
FileClose(handle);
int value=10;
handle=FileOpen("filename.dat", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteInteger(handle, value, SHORT_VALUE);
//...
FileClose(handle);
int FileWriteString( int handle, string value, int length)
向文件写入字符串数据
示例:
int handle;
string str="some string";
handle=FileOpen("filename.bin", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteString(h1, str, 8);
FileClose(handle);
string str="some string";
handle=FileOpen("filename.bin", FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("can't open file error-",GetLastError());
return(0);
}
FileWriteString(h1, str, 8);
FileClose(handle);
