亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? file_demo.c

?? TP900掌機功能測試C源碼大全(含開發頭文件)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************/
/* file_demo.c
   文件系統函數操作:
   在exist菜單中,首先通過鍵入值判斷文件是否存在,若不存在則創建相應的文件;
   在open菜單中,列出已經判斷存在的文件,通過選擇可以實現對應文件6種不同方式的打開;
   在seek菜單中, 確定文件指針的偏移量,可以選擇從文件頭,文件現在的指針位置以
      及文件尾三種方式進行定位;
   在read和write菜單中,分別列出以對應方式打開的文件:
   在read菜單中,可以得到文件的長度,文件的指針偏移量,以及每按一次讀出10個字節的文件內容并顯示;
   在write菜單中,可以選擇鍵入一定的文件內容或者是鍵入特定的11個字節的字符串;
   

   Copyright (c) 2006 by Thinta Co.LTD
   All rights reserved 

                                                             */
/************************************************************************/
#include "..\inc\Bio_Func.h"
#include "..\inc\key.h"
#include <STRING.H>
#include <STDIO.H>

#define FALSE 0x00
#define TRUE  0x01

#define NORMALCOLOR 1
#define NONECOLOR   0

#define CHINESEMODE	1
#define ENGLISHMODE	0



/****************************主菜單函數聲明****************************/
U8 file_tst(void);


/* ************************菜單子目錄實現函數聲明*************************/
void f_exist(void);
void f_open(void);
void f_seek(void);
void f_read(void);
void f_write(void);
void f_close(void);



/****************************其他函數聲明****************************/
S32	_read_data(void);
U8 string_key(U8* str, U8 len_str);
void row_name(U8 px, U8 py, U8 row, U8* name);
void _prtf(U8 x, U8 y, U8* flg, S32 data);


void _PutString( U8 x,U8 y,U8 *str )
{
	_gotoxy(x,y);
	_putstr(str);
}


/*****************************全局變量定義*****************************/
FILE *g_fp[8]           = NULL ;
U8   g_filename[8][36]  = {0}  ;
U8	 g_opennum          = 0    ;			    //記錄現在使用的是第幾個
U8	 g_opencount        = 0    ;			    //記錄打開的文件的總數
U8	 g_open[8]          = {0}  ;			    //和fp[8]相對應,0-沒有打開的文件, 1-有打開的文件
U8   g_testcount        = 0    ;                //證明存在的文件總數
U8   g_readorwrite[8]   = {0}  ;                //記錄文件是以讀打開還是寫打開, 1-讀, 2-寫,3-創建,4-其他
U8   g_readcount        = 0    ;                //讀文件個數
U8   g_writecount       = 0    ;                //寫文件個數	


void main (void)
{
	//系統初始化
	InitHeap() ;
	_sysinit();
	_file_sys_init();	
	_setscreenmode(CHINESEMODE);
	_setdispcolor(NORMALCOLOR);
	_setkeymode(2);

	//顯示首頁
	_cls();
	_PutString(2, 2, "文件系統函數使用");
	_PutString(3, 4, "時間:06.05.18");
	_PutString(1, 6, "By Thinta Co.LTD");

	//按鍵進入菜單選項頁
	_bioskey(0);	
	while(1)
	{
		//運行菜單程序,若按退出鍵則退出程序
		if(!file_tst())
			break;
	}
	
}

U8 file_tst(void)
{
	U8* fMenu[] = { "1._fexist", "2._fopen", "3._fseek", 
		"4._fread", "5._fwrite", "6._fclose"};         //菜單內容
	S16	fChoice;                                                  //菜單按鍵選擇

  //建立主菜單
	while(1)
	{
		_cls();
		_PutString(0, 1, "     -file func-     ");

		fChoice = PopUpMenu(5, 2, 14, 9, fMenu, "123456", 6, 6, fChoice, 0, 0, NULL, 0 );
	
		switch(fChoice)
		{
		case 0 : return 0;
			break;
		case 1 : f_exist();
			break;
		case 2 : f_open();
			break;
		case 3 : f_seek();
			break;
		case 4 : f_read();
			break;
		case 5 : f_write();
			break;
		case 6 : f_close();
			break;
		default:
			return 0;			

		}
	}

	_fcloseall();
}

void f_exist(void)
{
	U8    sName[10] = {0} ;  //文件名
    U8    sSuf[4]   = {0} ;  //后綴名
	U8*    dir      = NULL;  //路徑
	FILE* pfile     = NULL;  //文件指針

	_cls();

	//路徑初始化
	dir = malloc(30);
	memset(dir, 0, 30);
	strcpy(dir, "d:\\");	
	_PutString(0, 0, "當前路徑:");
	_putstr(dir);

	//鍵入文件名
	_PutString(0, 1, "文件名:");
	if (string_key(sName, 10) == 0)
	{
		free(dir);
		return;
	}	
	
	//鍵入后綴名
	_PutString(0, 2, "后綴名:");
	if (string_key(sSuf, 4) == NULL)
	{
		free(dir);
		return;
	}
	
	//得到全路徑名
	strcat(dir, sName);
	strcat(dir, ".");
	strcat(dir, sSuf); 	
	_PutString(0, 4, dir);	

	//判斷文件是否存在,若不存在則創建,并且將文件名記入g_filename[]
	_gotoxy(0, 5);	
	if( !_fileexist(dir))
	{
		memset(g_filename[g_testcount],0,36);
		memcpy(g_filename[g_testcount], dir, strlen(dir));//記入已經證實存在的文件
		_putstr("文件存在");
		g_testcount++;
	}
    else 
	{
		_putstr("文件不存在\n");

		pfile = _fopen( dir, "a+" );		
		if (!pfile)
			_putstr("創建文件失敗!");
		else
		{	
			memset(g_filename[g_testcount],0,36);
			memcpy(g_filename[g_testcount], dir, strlen(dir));//記入新建文件
			_putstr("創建文件成功!");
			_fclose(pfile);	
			g_testcount++;			
		}		
	}

	_bioskey(0);
}

void f_open(void)
{
	S16   Key           ;                                   //按鍵
	U8    i, row = 1    ;                                   //row是行號
	U8    seq[8] = {0}  ;                                   //存放對應于行號的文件序數
	U8*   readmode    = NULL ;                              //記錄用戶選擇的文件打開模式
	U8    rw_mode[6]  = {1, 2, 3, 4, 4, 4};	               //記錄用戶打開的不同方式,以在下面的文件讀寫操作中分類
	FILE* pfile      = NULL ;                              //打開文件指針


	_cls();
	_PutString(0, 1, "選擇文件打開:\n");

	//輸出能夠打開的文件
	for ( i = 0; i < g_testcount; i++)
	{
		if( g_open[i] != 1 )
		{
			seq[row - 1] = i;
			row_name(0, row+1, row, g_filename[i]);			
            row++;
		}
	}

	Key = _bioskey(0);	
	
	if(Key >= NUMBER_1  && Key <= NUMBER_8 )
		g_opennum = seq[(U8)(Key - NUMBER_1)];
	else
		return;

	//輸出選擇打開的文件
	_cls();
	_PutString(0, 1, "選擇的文件為:\n");
	_putstr(g_filename[g_opennum]);
	
	//選擇打開方式
	_PutString(0, 3, "選擇打開方式:\n");
	_putstr("1.r,  2.w,  3.a\n4.r+, 5.w+, 6.a+");
	
	Key = _bioskey(0);
	
	switch(Key)
	{
	case NUMBER_1: readmode = "r";
  		break;    
    case NUMBER_2: readmode = "w";
  		break;
    case NUMBER_3: readmode = "a";
   		break;
	case NUMBER_4: readmode = "r+";
		  break;
	case NUMBER_5: readmode = "w+";
		  break;
	case NUMBER_6: readmode = "a+";
		  break;
    default: readmode = "r";
   		break;
	}

	//打開文件	
	pfile = _fopen(g_filename[g_opennum],readmode);

	if(NULL == pfile)
		_PutString(0, 6, "打開文件失敗");
	else
	{
		_PutString(0, 6, "打開文件成功");

  	    g_open[g_opennum] = 1    ;     //標志文件已打開
   	    g_fp[g_opennum]   = pfile;     //記錄文件指針
   	    (g_opencount)++;   		         //打開文件個數加一
	
		//以數字方式記錄文件打開方式以在讀寫菜單操作中進行判斷
		if(Key >= NUMBER_1  && Key <= NUMBER_6 )
		{
			g_readorwrite[g_opennum]   =  rw_mode[(U8)(Key - NUMBER_1)];
		
			if (Key == NUMBER_1 || Key == NUMBER_4 || Key == NUMBER_5 
		                    	|| Key == NUMBER_6)
				g_readcount++;

			if (Key == NUMBER_2 || Key == NUMBER_3 || Key == NUMBER_4 
			                	|| Key == NUMBER_5 || Key == NUMBER_6)
				g_writecount++;			
		}
		else
			return;
	}

	_bioskey(0);
}

void f_seek(void)
{
	S16	  choice;               //菜單選擇 
	U16	  whence;               //定位方式 
	S32   pos_result, key;
	U8    i, row = 1          ; //row是行號
	U8    seq[8] = {0}        ; //記錄序號
	S32	  offset = 0          ; //offset是指針偏移
	char* menu[] = {"1.SEEK_SET", "2.SEEK_CUR", "3.SEEK_END"};
	
	_cls();
	_PutString(0, 1, "選擇定位文件:\n");

	for(i=0;i<8;i++)
	{
		if(g_open[i]== 1)
		{
			seq[row - 1] = i;
			row_name(0, row+1, row, g_filename[i]);			
            row++;
		}
	}
	
	key = _bioskey(0);

	if(key >= NUMBER_1  && key <= NUMBER_8 )
	{
		if ((key - NUMBER_1) < g_opencount)
			g_opennum = seq[(U8)(key - NUMBER_1)];
		else 
			return;
	}
	else
		return;
	

 	_cls();
 	_PutString(0, 1, "選擇定位的文件為:\n"); 
	_putstr(g_filename[g_opennum]);  		
	_PutString(0, 4, "offset:");
	
	offset = _read_data();
	
	if (offset == ESC)
		return;
			
	_cls();
	_gotoxy(0,1);	
	choice = PopUpMenu(2, 2, 13, 5, menu, "123", 3, 3, choice, 1, 0, NULL, 0);	
	switch(choice)
	{
	case 0	:	return;
		break;
	case 1	:	whence = 0;
		break;
	case 2	:	whence = 1;
		break;
	case 3	:	whence = 2;
		break;
	default	:
		break;
	}

	pos_result = _fseek(g_fp[g_opennum], offset, whence);

	if (pos_result == 0)
		_PutString(0, 7, "定位成功!");
	else
		_PutString(0, 7, "定位失敗!");	

	_bioskey(0);	

}

void f_read(void)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久久久久| 亚洲精品欧美在线| 成人免费在线播放视频| 亚洲尤物视频在线| 毛片av一区二区| 成人国产精品免费观看视频| 在线观看中文字幕不卡| 精品国产一区二区三区四区四| 国产精品久久网站| 日韩成人午夜精品| 99riav久久精品riav| 欧美一级日韩一级| 亚洲色图一区二区三区| 蜜臀久久久久久久| 91在线观看高清| 日韩免费高清电影| 美女视频网站黄色亚洲| 盗摄精品av一区二区三区| 欧美日韩视频在线观看一区二区三区| 精品美女一区二区| 亚洲免费av高清| 国产精品香蕉一区二区三区| 欧美图片一区二区三区| 欧美高清在线精品一区| 日韩电影在线一区二区| 91在线视频播放地址| 欧美白人最猛性xxxxx69交| 亚洲三级电影全部在线观看高清| 精品中文字幕一区二区| 欧美三级韩国三级日本一级| 国产精品久久国产精麻豆99网站 | 北条麻妃一区二区三区| 欧美一级在线视频| 亚洲国产精品人人做人人爽| 丰满岳乱妇一区二区三区| 欧美一区二区三区视频| 亚洲毛片av在线| 国产91精品露脸国语对白| 欧美成人伊人久久综合网| 亚洲最快最全在线视频| 不卡在线视频中文字幕| 久久美女艺术照精彩视频福利播放| 午夜精品久久久久久久99水蜜桃 | 亚洲视频资源在线| 国产美女一区二区| 日韩视频在线你懂得| 亚洲精品免费一二三区| a美女胸又www黄视频久久| 国产三级精品在线| 国产一区二区三区久久久| 欧美成人女星排名| 日韩精品欧美精品| 欧美日韩大陆在线| 亚洲国产sm捆绑调教视频| 色先锋aa成人| 亚洲久本草在线中文字幕| www.视频一区| 国产精品美女www爽爽爽| 国产一区在线精品| 久久久另类综合| 国产精品一区专区| 久久久久久久久久久久久女国产乱| 美女脱光内衣内裤视频久久网站 | 美国一区二区三区在线播放| 91精品国产综合久久小美女| 国产伦理精品不卡| 久久午夜国产精品| 国产伦精品一区二区三区视频青涩| 26uuu精品一区二区| 韩国av一区二区| 久久精品视频免费观看| 国产福利精品一区二区| 国产精品午夜春色av| 成人国产电影网| 亚洲欧美激情插 | 夜夜揉揉日日人人青青一国产精品| 91免费在线视频观看| 亚洲精品水蜜桃| 欧美色视频一区| 美日韩一级片在线观看| 精品精品国产高清a毛片牛牛| 国内精品国产三级国产a久久| 久久久久久久久久美女| www.综合网.com| 一区二区三区久久久| 欧美日韩精品一区二区三区四区| 爽好多水快深点欧美视频| 日韩免费电影一区| 国产成人在线影院| 又紧又大又爽精品一区二区| 欧美日韩精品专区| 国产在线不卡视频| 亚洲桃色在线一区| 欧美精三区欧美精三区 | 国产色一区二区| 成+人+亚洲+综合天堂| 一区二区三区精品视频在线| 欧美一区二区三区四区久久 | 国产精品欧美综合在线| 色菇凉天天综合网| 美女视频一区在线观看| 中文在线资源观看网站视频免费不卡| 一本色道久久综合精品竹菊| 日韩avvvv在线播放| 久久久久国产精品免费免费搜索| 91在线观看成人| 蜜臀av性久久久久蜜臀aⅴ | 91在线精品秘密一区二区| 亚洲成av人片在线| 久久日韩粉嫩一区二区三区| 一本到一区二区三区| 日韩国产成人精品| 国产精品视频麻豆| 欧美日韩三级一区| 国产九九视频一区二区三区| 亚洲精品中文字幕乱码三区| 日韩限制级电影在线观看| 成人免费视频一区| 视频一区国产视频| 中文字幕永久在线不卡| 91精品国产麻豆| 99视频超级精品| 久久国内精品自在自线400部| 日韩码欧中文字| 精品久久一区二区三区| 一本久久精品一区二区| 狠狠色丁香婷婷综合| 一区二区三区不卡视频| 2022国产精品视频| 欧美日韩国产色站一区二区三区| 国产suv一区二区三区88区| 香蕉成人伊视频在线观看| 日韩精品福利网| 国产精品久久久久一区二区三区| 欧美一区二区黄色| 在线视频你懂得一区| 一区二区三区小说| 国产精品乱码妇女bbbb| 日韩午夜激情av| 欧美日本韩国一区二区三区视频| 成人网在线播放| 精品午夜一区二区三区在线观看| 亚洲影院理伦片| 亚洲日本电影在线| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美少妇一区二区| a在线播放不卡| 国产成人在线视频网站| 麻豆精品国产传媒mv男同| 亚洲一区二区三区美女| 国产精品久久久久久久久搜平片| 精品盗摄一区二区三区| 欧美一区二区三区思思人| 欧美性xxxxx极品少妇| 成人sese在线| 国产69精品久久久久毛片| 国产原创一区二区三区| 久久精品国产免费| 蜜臀av性久久久久av蜜臀妖精| 亚洲一区二区av电影| 亚洲人午夜精品天堂一二香蕉| 国产区在线观看成人精品| 久久新电视剧免费观看| 精品久久免费看| 欧美大片一区二区| 日韩视频免费观看高清在线视频| 欧美日韩久久不卡| 欧美色成人综合| 在线观看网站黄不卡| 欧洲视频一区二区| 欧美主播一区二区三区| 一本大道综合伊人精品热热| av综合在线播放| 91小视频免费观看| 色偷偷久久人人79超碰人人澡| av亚洲产国偷v产偷v自拍| 丁香五精品蜜臀久久久久99网站 | 国产欧美一区二区在线| 久久免费午夜影院| 国产欧美日韩视频在线观看| 久久久久久99精品| 中文字幕不卡三区| 日韩毛片一二三区| 亚洲制服欧美中文字幕中文字幕| 一区二区三区免费观看| 亚洲国产日韩av| 视频一区二区不卡| 六月婷婷色综合| 国产精品性做久久久久久| 成人午夜电影网站| 色噜噜狠狠成人网p站| 欧美色综合影院| 欧美一区二区免费视频| 精品成人a区在线观看| 国产日产欧美一区| 国产一区二区三区观看| 国产精品一级二级三级| av不卡在线播放| 欧美私人免费视频| 日韩午夜小视频|