📄 fileop.h
字号:
/*=============================================
** 2005-8-22 **
** 定义文件操作函数 **
** lizhu zhang **
=============================================*/
#define MAXLEN 2048
#pragma once
#include "stdafx.h"
#include "MainDataStruct.h"
/*============================================
**参数说明:
** [in] fileName :文件名称
** [out]pString : 返回字符串
** [in] row :要读取的行数
** [out]flag :文件结束标志
**操作成功,返回值为1,失败,返回值为-1
===============================================*/
int FFileRead(const char *fileName,char *pString,const int row,int &flag)
{
int rowCount = row;
fstream file;
file.open(fileName,ios::in);
if(!file)
{
return -1;
}
//操作成功
while(rowCount!=0&&(!file.eof()))
{
file.getline(pString,MAXLEN);
rowCount -= 1;
}
if(file.eof()&&rowCount!=0)
{
flag = 0;
}
file.close();
return 1;
}
/*============================================
**参数说明:
** [in] type :可变参数的类型选择,0:tokenString,1:symbleList,2:PErrMsg,3:RMSG *
** [in] 可变参数
** [in] fileName:要写入的文件的名称
**操作成功,返回值为1,失败,返回值为-1
===============================================*/
int FFileWrite(char *fileName,int type,...)
{
fstream file;
file.open(fileName,ios::out|ios::app);
if(!file)
return -1;
//文件操作成功
Token *tokenString;
Sl *symbleList;
va_list arg_ptr;
va_start(arg_ptr,type);
switch(type)
{
case 0://写入Token文件
tokenString = (struct TOKEN*)malloc(sizeof(TOKEN));
tokenString = va_arg(arg_ptr,TOKEN *);
va_end(arg_ptr);
file<<tokenString->code<<" "<<tokenString->addr<<" "<<endl;
file.close();
break;
case 1://写入符号表文件
symbleList = (struct SYMBELLIST*)malloc(sizeof(SYMBELLIST));
symbleList = va_arg(arg_ptr, SYMBELLIST *);
va_end(arg_ptr);
file<<symbleList->name.addr<<" "<<symbleList->name.len<<" "
<<symbleList->type<<" "<<symbleList->kind<<" "<<symbleList->layer<<" "
<<symbleList->addr<<endl;
break;
case 2://写入错误信息文件
PErrMsg pErrMsg;
pErrMsg = (struct ERRMSG*)malloc(sizeof(ERRMSG));
pErrMsg = va_arg(arg_ptr,ERRMSG*);
file<<"错误信息("<<pErrMsg->row<<","
<<pErrMsg->col<<"):"<<pErrMsg->pErrMsg<<endl;
break;
case 3://记录源文件中的值
pRMsg pMessage;
pMessage = (pRMsg)malloc(sizeof(RMSG));
pMessage = va_arg(arg_ptr,pRMsg);
va_end(arg_ptr);
file<<pMessage->pMsg<<" "<<pMessage->num<<endl;
break;
default:
file.close();
return -1;
}
return 1;
file.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -