📄 fileio.cpp
字号:
/*
模 块: 交换文件模块.
功 能: 将暂时不用的数据保存在文件中.
程序员: 雷中南.
版 本: v1.1
时 间: 1999-05-04
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dir.h>
#include "fileio.h"
#include "def.h"
//文件顺序号.
int FileIO::NameID;
//构造函数.
FileIO::FileIO()
{
struct ffblk ffblk;
FILE *fHandle;
//产生临时文件名.
char temp[15];
next:
NameID = random(32766);
//FileIO_Drive 可指定临时文件的位置.
strcpy(FileName, "");
sprintf(temp, "D:\\POS%05d.TMP", NameID);
strcat(FileName, temp);
if(findfirst(FileName, &ffblk, 0) == 0)
goto next;
if ((fHandle = fopen(FileName, "w+b")) == NULL)
{
fclose(fHandle);
exit(1);
}
fclose(fHandle);
}
//析构函数.
FileIO::~FileIO()
{
//删除临时文件.
remove(FileName);
}
//读取数据.
//成功时返回:L_OK
//失败时返回:L_ERROR
int
FileIO::Read(char *Buffer, long Poision, int Size)
{
FILE *fHandle;
//打开文件.
if ((fHandle = fopen(FileName, "rb")) == NULL)
{
fclose(fHandle);
return L_ERROR;
}
//查找位置.
if(fseek(fHandle, Poision, 0) != 0)
{
fclose(fHandle);
return L_ERROR;
}
//读取数据.
if(fread(Buffer, Size, 1, fHandle ) == 0)
{
fclose(fHandle);
return L_ERROR;
}
//关闭文件.
fclose(fHandle);
return L_OK;
}
//写数据.
//成功时返回:L_OK
//失败时返回:L_ERROR
int
FileIO::Write(char *Buffer, long Poision, int Size)
{
FILE *fHandle;
//打开文件.
if ((fHandle = fopen(FileName, "r+b")) == NULL)
{
fclose(fHandle);
return L_ERROR;
}
//查找位置.
if(fseek(fHandle, Poision, 0) != 0)
{
fclose(fHandle);
return L_ERROR;
}
//写数据.
if(fwrite(Buffer, Size, 1, fHandle ) == 0)
{
fclose(fHandle);
return L_ERROR;
}
//关闭文件.
fclose(fHandle);
return L_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -