//*********************************************************
// Labwindows/cvi8.5 文件的读写
// 有关函数需要在CVI仿真的时候仔细理解
// szlihongtao
// 2010-06-12
//*********************************************************
#include <cvirte.h>
#include <userint.h>
#include <ansi_c.h>
#include <formatio.h>
#include <utility.h>
#include "toolbox.h"
#include "file.h"
//*********************************************************
static int panelHandle;
//*********************************************************
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "file.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
//*********************************************************
int CVICALLBACK Callback_add (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
long FileSize;
int i,FileHandle;
char arr[128];
switch (event)
{
case EVENT_COMMIT:
{
if (GetFileInfo("1.dat",&FileSize)!=TRUE) // 判断文件是否存在
break;
FileHandle = OpenFile ("1.dat", VAL_READ_WRITE, VAL_APPEND, VAL_ASCII); // 创建一个新文件
strcpy(arr,"01234567890");
i=StringLength(arr);
WriteFile (FileHandle, arr, i);
CloseFile(FileHandle); // 关闭文件
break;
}
default:
break;
}
return 0;
}
//*********************************************************
int CVICALLBACK Callback_read (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
long FileSize;
int i,FileHandle;
char arr[128];
switch (event)
{
case EVENT_COMMIT:
{
if (GetFileInfo("1.dat",&FileSize)!=TRUE) // 判断文件是否存在
break;
FileHandle = OpenFile ("1.dat", VAL_READ_WRITE, VAL_APPEND, VAL_ASCII); // 创建一个新文件
arr[3]=33 ;
arr[4]=44 ;
ReadFile (FileHandle, arr, 4);
ReadFile (FileHandle, arr, 4); // 读的指针会自动后移
SetFilePtr(FileHandle,3,0); // 调整读的指针
arr[3]=33 ;
arr[4]=44 ;
ReadFile (FileHandle, arr, 4);
CloseFile(FileHandle); // 关闭文件
break;
}
default:
break;
}
return 0;
}
//*********************************************************
int CVICALLBACK Callback_new (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
long FileSize;
char filename[MAX_PATHNAME_LEN];
int f_led;
int FileHandle,f_OpenFile;
switch (event)
{
case EVENT_COMMIT:
f_OpenFile=0;
#if 0
fclose (fopen ("1.dat", "wb+")); // 创建一个新文件
#else
f_OpenFile=1; // 1表示采用OpenFile的方式打开文件
FileHandle=OpenFile ("1.dat", VAL_READ_WRITE, VAL_TRUNCATE, VAL_BINARY); // 创建一个新文件
#endif
//-----------------------------------------------------------
f_led=0;
#if 0
if (GetFileInfo("1.dat",&FileSize)==TRUE) // 判断文件是否存在
f_led=1;
#else
//if (FileExists("1.dat",0)==TRUE) // 判断文件是否存在
//采用这个语句的话,运行不正常,不知道为什么????
GetProjectDir (filename);
strcat (filename, "\\1.dat"); // 完整的文件名
if (FileExists(filename,&FileSize)==TRUE) // 判断文件是否存在
f_led=1;
#endif
SetCtrlVal(panelHandle,PANEL_LED,f_led);
if (f_OpenFile)
CloseFile(FileHandle); // 关闭文件
break;
default:
break;
}
return 0;
}
//*********************************************************
int CVICALLBACK Callback_del (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
RemoveFileIfExists ("1.dat"); // 删除文件
break;
default:
break;
}
return 0;
}
//*********************************************************
int CVICALLBACK QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
QuitUserInterface (0);
break;
default:
break;
}
return 0;
}
//*********************************************************
//*********************************************************
//*********************************************************
用户1795217 2014-10-20 16:24
用户468818 2014-4-12 16:04
Asmodeus 2013-12-11 20:28
用户426708 2013-11-20 22:08
用户578057 2012-11-2 09:17