5.12 File functions文件函数
一组文件运行函数。
三个文件目录(补充指南)放置的地方:
/HISTORY/<current broker>——/FileOpenHistory函数;
/EXPERTS/FILES——常规状况;
/TESTER/FILES——专门测试。
来自其他目录的工作文件禁止。
5.12.1 FileClose关闭文件
void FileClose(int handle)
用FileOpen()函数打开先前已关闭的文件。
【参量】
Handle—用FileOpen()函数返回句柄。
【示例】
int handle=FileOpen”filename",FILE_CSV I FIL.E_READ );
if( handle>0)
//运行文件.
FileClose( handle);
}
5.12.2 FileDelete删除文件
void FileDelete( string filename)
删除指定的文件名。要获得详细的错误信息,请查看GetLastError ( )函数。
如果它们是在terminal_ ditfexperts'files目录(terminal_ directo叻estetifiles,在测试的情况下)或它的补充指南中,只删除单个文件。
int lastError;
FileDelete”my_ table. csv");
lastError=GetLastError();
if( laseError!=ERR_NOERROR)
{
Print”错误(" , lastError , ")删除文件my_ table. csv" ) ;
return(0);
}
【参量】
Filename—目录和文件名。
【示例】
//文件my_table. cav将从目录terminal di}xperts'files directory中删除
5.12.3 FileFlush将缓存中的数据刷新到磁盘上
void FileFlush(int handle)
将缓存中的数据刷新到磁盘上。
注解:FileFlush)函数只有在文件被读或被写中显示。
所有关闭的文件会自动从储存缓冲器上删除。所以,在调用FileClose)函数之前不需要调用FileFlush)函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
【示例】

5.12.4 FileIsEnding文件结尾
bool FileIsEnding( int handle)
如果文件指针是在文件的末端,返回逻辑配齐;否则,返回false。要获得详细的错误信息,请查看GefLastError)函数。如果文件末端在只读期间到达,GetLastError()函数将返回错误ERR_ END_OF_FILE (4099) 。
【参量】
Handle—用FileOpen)函数返回的句柄。
【示例】
if( FileIsEnding( hl))
{
FileClose( hl);
return (false );
5.12.5 FileIsLineEnding行末
bool FileIsLineEnding( int handle)
如果CSV文件指针是在文件的末端,返回逻辑配齐;否则,返回false o
要获得详细的错误信息,请查看GetLastError)函数。
【参量】
Handle—用FileOpen()函数返回的句柄。
【示例】
if( FileIsLineEnding( hl))
FileClose( hl);
return ( false );
5.12.6 FileOpen打开文件
int FileOpen(string filename,int mode,void delimiter)
为输人或输出信息打开文件。如果函数失败,返回打开文件或一1。要获得详细的错误信息,请查看GetLastError)函数。
注解:文件可能只在terminal_ directo吵xpertsYiles文件夹或在它的子文件夹内被打开。
FILE_ BIN和FILE_ CSV格式不能同时使用。
如果FILE_ WRITE与FILE_ READ不结合,被打开的文件长度为零。如果还有一些包含数据的文件,它们将被删除。如果需要对现存文件添加数据,必须使用FILE_ READ和FILE_ W RITE文件组合打开。
如果FILE_ READ与FILE_ WRITE不结合,仅仅会打开现存文件。如果文件不存在,可以使用FILE_ WRITE创建。
在一个板块内最多能够同时执行32个文件。
【参量】
Filename—文件名称。
mode—打开模式。可以是以下的一种或是组合:FILE _ BIN , FILECSV ,FILE_READ和FILE_WRITE。
Delimiter— csv文件的限定。默认值为符号。
【示例】
int handle;
handle=FileOpen(”my_data. csv",FILE CSV I FILE_READ;’);
if( handle<I)
Print”未找到my_ data. dat文件,错误”,GetLastError( ) ) ;
return ( false
5.12.7 FileOpenHistory在历史目录中打开文件
int FileOpenHistory(string filename,int mode,void delimiter)
在当前的历史目录(terminal_ director户tistory}erver_name)或在它的子文件内打开文件。如果函数失败,返回文件描述部分或一1。要获得详细的错误信息,请查看GetLastError()函数。
注解:客户终端可能连接到不同经纪公司的服务器。每个经纪公司的历史数据(HST文件)会存储在terminal _ directory \ history相对应的子文件夹内。
文件在脱机时同样可以打开,不会有数据进人。
【参量】
Filename—文件名称。
mode—打开模式。可以是以下的一种或是组合:FILE _ BIN , FILE_SV ,FILE_READ和FILE_ WRITE。
Delimiter— csv文件的限定。默认值为’;‘符号。
【示例】
int handle=FileDpenHistory(”USDX240. HS7"',FILE_BIN I FILE_WRITE);
if( handle<1)
Print”不能创建LSDX240. HST又件”
return ( False );
mode—打开模式。可以是以下的一种或是组合:FILE _ BIN , FILECSV ,FILE_READ和FILE_WRITE。
Delimiter— csv文件的限定。默认值为‘符号。
【示例】
int handle;
handle=FileOpen(”my_data. csv",FILE CSV I FILE_READ,’);
if( handle<I)
Print”未找到my_ data. dat文件,错误”,GetLastError( ) ) ;return ( false
5.12.7 FileOpenHistory在历史目录中打开文件
int FileOpenHistory(string filename,int mode,void delimiter)
在当前的历史目录(terminal_ director户tistory}erver_name)或在它的子文件内打开文件。如果函数失败,返回文件描述部分或一1。要获得详细的错误信息,请查看GetLastError()函数。
注解:客户终端可能连接到不同经纪公司的服务器。每个经纪公司的历史数据(HST文件)会存储在terminal _ directory \ history相对应的子文件夹内。
文件在脱机时同样可以打开,不会有数据进人。
【参量】
Filename—文件名称。
mode—打开模式。可以是以下的一种或是组合:FILE _ BIN , FILE_CSV ,FILE_READ和FILE_ WRITE。
Delimiter— csv文件的限定。默认值为’;‘符号。
【示例】
int handle=FileDpenHistory(”USDX240. HS7"',FILE_BIN I FILE_WRITE);
if( handle<1)
Print”不能创建LSDX240. HST文件”
return ( False );
}
//运行文件
//...
FileClose(handle);
5.12.8 FileReadArray将二进制文件读取到数组中
int FileReadArray( int handle,void array」,int start,int count)
将二进制文件读取到数组中,返回读取的条数。
要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
arrayl—写人的数组。
Start—在数组中存储的开始点。
Count—读取多少个对象。
【示例】
int handle;
double varray 10;
handle=FileOpen”filename. dat",FILE_BIN{FILE_READ);
if ( handle>0)
{
FileReadArray ( handle
FileClose( handle)varray,0,10);
5.12.9 FileReadDouble从文件中读取浮点型数据
double FileReadI)ouble( int handle,void size)
从文件中读取浮点型数据,数字可以是8 byte的double型,或者是4byte的float型。
要获得错误信息,请查看GetLastError()函数。
【参量】
Handle-
Size——用FileOpen()函数返回的句柄。
Size——数字格式大小,DOUBLE_VALUE ( 8 bytes)或者FLOAT_VAL-UE ( 4 bytes)。
【示例】
int handle;
double value;
handle=FileOpen”mydata. dat",FILE_BIN );
if ( handle>0)
value=FileReadDouble ( handle,DOUBLE_ VALUE);
FileClose( handle);
5.12.10 FileReadlnteger从当前二进制文件中读取整形型数据
int FileReadlnteger( int handle,void size)
从当前二进制文件中读取整形型数据,数字可以是1 ,2,4byte的长度。如果格式大小不被指定,系统设法读4字节的值。要获得详细的错误信息,
请查看GetLastError()函数。
【参量】
Handle—用FileOpen()函数返回的句柄。
Size—数字格式大小,CHAR _ VALUE ( 1 byte ) , SHORT _ VALUE ( 2bytes)或LONG_VALUE(4 bytes )。
【示例】
int handle;
int value;
handle=FileOpen”mydata. dat",FILE_BIN I FILE_READ );
if( handle>0)
value=FileReadlnteger( hl ,2)
FileClose( handle);
5.12.11 FileReadNumber读取文件数字
double FileReadNumber( int handle)
从当前文件位置在符号之前读取数字。只能为CSV文件。
要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen()函数返回的句柄。
【示例】
int handle;
int value;
handle二FileOpen”filename. csv".FILE_ CSV,);
if( handle>0)
{
value=FileReadIVumber( handle);
FileClose( handle);
5.12.12 FileReadString从当前文件位置读取字符串
string FileReadString (int handle,void length)
从当前文件位置读取字串符,适用于CSV和二进制文件。在文本文件中,字串符在符号之前被读取。对于二进制文件,被测量的计数将读取字串符。要获得详细的错误信息,请查看GetLastE rror)函数。
【参量】
Handle—用FileOpen)返回的句柄。
Length—读取字符串长度。
【示例】
int handle;
stung str;
handle=FileOpen”filename. csv",FILE CSV I FILE_READ );
if( handle>0)
{
str=FileReadString( handle);
FileClose ( handle );
5.12.13 FileSeek文件指针移动
boot FileSeek ( int handle,int offset,int origin)
在字节上,函数移动文件指针是垂距的,从开始的一个新的位置指向末端或者当前文件位置。接下来的读取或写人放置在一个新位置。
如果文件指针成功地被移动了,函数返回TRUEe;否则,返回FALSEo要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
Offset—设置的原点。
Origin—最初的位置。值可以是以下任意常数:
SEEK_ CUR—当前位置;
SEEK_ SET—开始位置;
SEEK_ END—结束位置。
【示例】
int handle=FileOpen”filename. esv",FILE_ GSV I FILE_ READ I FILE_ WRITE,’;’);
if( handle>0)
FileSeek(handle,O,SEEK_ END);
//---一在文件末端添加数据
F'ileWrite( handle,datal,data2);
FileClose( handle);
handle=0;
5.12.14 FileSize文件大小
int FileSize(int handle)
返回文件大小字节。获得详细的错误信息,查看GetLastError()函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
【示例】
int handle;
mt size
handle=FileOpen(”my_table. dat",FILE_BIN I FILE READ);
if( handle>0)
size=FileSize( handle )
Print () " my_table. dat大小为”,大小”bytes"
F'ileClose ( handle );
5.12.15 File丁ell文件指针的当前位置
int FileTell ( int handle)
返回文件指针的当前位置。获得详细的错误信息,查看GetLastError ( )
函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
【示例】

5.12.16 FileWrite写入文件
int FileWrite( int handle,…)
该函数的目的是便于书写的数据转换为CSV格式文件,自动插入限定符。在写入文件后,每行的尾端将会添加’物”符号。数字将被转变成文本
(查看Print()函数)。
如果生成错误,返回书写字或负值的计数。
获得详细的错误信息,查看GetLastError( )函数。
【参量】
Handle
用FileOpen)函数返回的句柄。
...—写入的数据,由逗号分离。它可以是63个参量。当它们作为整数时,int数据和双重类型自动地被转换成串,但不自动转换颜色、日期一时间,布尔类型数据数组无法作为参量。
【示例】
int handle;
datetime orderOpen=OrderOpenTime);
handle=FileOpen”filename",FILE_CSV I FILE W RITE,’;’);
if( handle>0)
FileWrite( handle , Close ( 0 I,Open}O},High}O},I,ow } 0 } , TimeToStr( orderOpen ));
FileClose( handle);
5.12.17 FileWriteArray二进制文件写入数组
int FileWriteArray(int handle,object array(」,int start,int count
给一个二进制文件写人数组。int , boot、日期一时间和颜色类型书面元素作为4字节整数。一些双重类型书面元素,作为8字节浮动小数点数字。一些字串符类型将自动地在每串末尾添加符号撇。
如果错误生成,返回书写字或负值的计数。要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen()函数返回的句柄。
array—写数组。
Start—在数组内(第一个书面元素数字)开始索引。
Count—书写字的计数。
【示例】
int handle;
double BarOpenValues} 10};
//复制前10个柱到数组
for( int i=O;i<10;i++)
BarOpenValues}i} -Open}i};
//写入数组到文件
handle=FileOpen”mydata. dat" , FILE_BIN I FILE WRITE )
if( handle>0)
{
FileWriteArray(handle,BarOpenValues,3,7); //写入最后7个元素
FileClose(handle);
5.12.18 FileWriteDouble二进制文件以浮动小数点写入双重值
int FileWriteDouble( int handle,double value,void size)
给一个二进制文件以浮动小数点写人双重值。如果格式指定为FLOATVALUE,值将作为4字节浮动小数点数字写入(浮游物类型);否则,将以8字节浮动小数点格式写人(双重类型)。
如果错误生成,返回实际书面字节数或负值。
要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
Value—双精度值。
Size—选择格式。可以是以下任意值:
DOUBLE_VALUE (8字节,默认值);
FLOAT_VALUE (4字节)。
【示例】
int handle;
double varl=0. 345;
handle=FileOpen(”mydata. dat",FILE_BIN I FILE WRITE);
if( handle<1)
Print”不能打开错误文件一”,GetLastError( ) ) ;
return ( 0);
FileW riteDouble ( hl , varl,DOUBLE_VALUE);
\\...
FileClose( handle )
5.12.19 FileWritelnteger二进制文件写入整数值
int FileWriteInteger( int handle,int value,void size)
给一个二进制文件写人整数值。如果大小是SHORT_ VALUE,值将作为2字节整数(短的类型)被写人;如果大小是CHAR_ VALUE,值将作为I字节整数(炭灰类型)写入;并且,如果大小是LONG_ VALUE,值将作为4字节整数(长的int类型)写人。
如果错误生成,返回实际书面字节数或负值。
要获得详细的错误信息,请查看GetLastError()函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
V alue—写人值。
Size—选择格式。可以是以下任意值:
CHAR_ VALUE(1字节);
SHORT_VALUE (2字节);
LONG_VALUE (4字节,默认值)。
【示例】
int handle;
int value=10;
handle=FileOpen”filename. dat" , FILE_ BIN I FILE_WRITE );
if( handle<1)
{
Print”不能打开错误文件一”,GetLastError( ) ) ;
return ( 0);
}
File W riteInteget(handle,value,SHORT_VALUE);
//一
FileClose( handle);
5.12.20 FileWriteString当前文件位置函数写入
二进制文件字串符
int FileWriteString( int handle,string value,int length)
从当前文件位置函数写人一个二进制文件字串符。
如果错误生成,返回实际书面字节数或负值。
获得详细的错误信息,查看GetLastError)函数。
【参量】
Handle—用FileOpen)函数返回的句柄。
Value—写入字串符。
Length—写人字串符的长度。如果字串符长度超出被测量的值,它将被削减。如果它较短,它将由二进制Os延伸,由特定长度决定。
【示例】
int handle;
string str=”some string";
handle=FileOpen(”filename. bin",FILE_BIIV I FILE_WRITE);
if( handle<1)
{
Print(”不能打开错误文件一‘,,GetLastError( ) ) ;
return ( 0 );
}
FileWriteString( hl,str,8);
FileClose(handle);