原创 Labwindows/cvi8.5 文件的读写

2010-6-12 13:59 7302 12 15 分类: 软件与OS

//*********************************************************
// 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;
}
//*********************************************************
//*********************************************************
//*********************************************************


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1795217 2014-10-20 16:24

我是labwindows的初学者,对我帮助很大

用户468818 2014-4-12 16:04

很不错哦哦

Asmodeus 2013-12-11 20:28

因为是假的jlink

用户426708 2013-11-20 22:08

学习

用户578057 2012-11-2 09:17

挺不错的
相关推荐阅读
sz_lihongtao 2011-04-20 21:32
32bit无符号数快速开平方根
//*******************************************************************************// 32bit无符号数开平方根// ...
sz_lihongtao 2011-04-20 12:12
STM32学习日志(24)----使用dsp库的FFT函数测相位
attachment download/**  ****************************************************************************...
sz_lihongtao 2011-04-19 14:57
STM32学习日志(23)----使用dsp库的FFT函数.rar
attachment download/**  ****************************************************************************...
sz_lihongtao 2011-04-19 10:39
stm32 dsp lib V2.0
attachment downloadattachment download...
sz_lihongtao 2011-04-19 10:37
STM32学习日志(22)----使用DMA功能自动更新PWM的输出
attachment download/*******************************************************************************编...
sz_lihongtao 2010-09-08 21:59
Labwindows/cvi8.5学习日志(56)----任意波形发生器
//******************************************************************************// Labwindows/cvi8.5...
EE直播间
更多
我要评论
3
12
关闭 站长推荐上一条 /3 下一条