⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileio.cpp

📁 金融pos机前台源码
💻 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 + -