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

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

?? file_demo.c

?? tp850掌機源碼文件操作例子,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一区二区三区免费野_久草精品视频
日韩经典一区二区| 欧美少妇一区二区| 国产伦精品一区二区三区免费迷| 久久久久久久综合狠狠综合| 91精品国产欧美日韩| 91精品国产免费久久综合| 5月丁香婷婷综合| 91精品午夜视频| 欧美一区二视频| 日韩一区二区免费在线观看| 日韩欧美综合在线| xvideos.蜜桃一区二区| 久久五月婷婷丁香社区| 久久九九国产精品| 中文字幕五月欧美| 亚洲色欲色欲www| 一区二区三区高清| 午夜久久电影网| 麻豆成人在线观看| 国产成人免费视频网站高清观看视频| 亚洲第一搞黄网站| 日韩成人免费在线| 国产在线精品视频| 波多野结衣在线aⅴ中文字幕不卡| 成年人国产精品| 欧美在线视频全部完| 3d成人动漫网站| 久久影院电视剧免费观看| 国产日本欧美一区二区| 亚洲蜜臀av乱码久久精品| 亚洲成av人片在线| 韩国成人精品a∨在线观看| 成人性生交大片免费看中文| 91丨porny丨户外露出| 欧美酷刑日本凌虐凌虐| 精品国产一区二区三区av性色| 精品嫩草影院久久| 国产精品久久久久久久久免费桃花| 亚洲视频 欧洲视频| 婷婷久久综合九色国产成人| 国产乱对白刺激视频不卡| 91色视频在线| 精品久久久久久无| 国产精品久久久久久福利一牛影视 | 久久精品人人爽人人爽| 中文字幕日本乱码精品影院| 亚洲国产精品影院| 国产激情精品久久久第一区二区| 国产精品伊人色| 欧美无乱码久久久免费午夜一区| 欧美成人一区二区| 亚洲欧美韩国综合色| 久久精品噜噜噜成人av农村| 不卡的电视剧免费网站有什么| 欧美系列亚洲系列| 国产蜜臀av在线一区二区三区| 一区二区视频在线看| 激情综合色播激情啊| 成人午夜在线视频| 91精品国产色综合久久ai换脸| 久久综合精品国产一区二区三区| 中文字幕亚洲不卡| 韩国女主播成人在线| 欧美亚洲日本一区| 国产精品欧美综合在线| 蜜桃在线一区二区三区| 91成人免费在线| 亚洲国产激情av| 蜜桃久久精品一区二区| 在线视频中文字幕一区二区| 久久久久国产成人精品亚洲午夜| 亚洲欧美日韩成人高清在线一区| 麻豆精品久久久| 欧美日韩免费电影| 亚洲男人电影天堂| 成人一级黄色片| 精品福利视频一区二区三区| 午夜精品福利一区二区蜜股av | 欧美精品粉嫩高潮一区二区| 中日韩免费视频中文字幕| 蜜桃传媒麻豆第一区在线观看| 91在线高清观看| 亚洲国产精华液网站w| 国产在线一区二区综合免费视频| 欧美午夜精品久久久| 亚洲少妇30p| 99久久婷婷国产综合精品| 久久综合色婷婷| 精品在线播放午夜| 日韩视频一区在线观看| 日韩高清一区二区| 欧美日本韩国一区| 亚洲一区二区视频| 色8久久精品久久久久久蜜| 国产精品素人视频| 成人av午夜电影| 日本一区二区三区久久久久久久久不| 亚洲午夜免费电影| 91电影在线观看| 一区二区日韩电影| 欧美午夜精品电影| 亚洲成人资源网| 欧美午夜在线观看| 午夜精品久久久久| 555www色欧美视频| 日本中文字幕一区| 日韩欧美电影在线| 理论电影国产精品| 久久综合九色综合97婷婷| 国内一区二区在线| 国产三级精品在线| 不卡一二三区首页| 亚洲麻豆国产自偷在线| 在线视频综合导航| 日韩专区一卡二卡| 91精品国产综合久久精品app| 亚洲国产欧美日韩另类综合| 欧美视频日韩视频| 日本一不卡视频| 精品国产网站在线观看| 激情五月播播久久久精品| 中文字幕免费在线观看视频一区| 国产成人av电影免费在线观看| 久久精品无码一区二区三区| 粉嫩嫩av羞羞动漫久久久| 国产精品毛片a∨一区二区三区| 福利一区二区在线| 亚洲自拍偷拍麻豆| 制服丝袜一区二区三区| 青青草97国产精品免费观看无弹窗版 | 中文字幕一区二区三区四区| av毛片久久久久**hd| 一二三区精品视频| 欧美日韩大陆一区二区| 精品一区二区三区香蕉蜜桃| 欧美国产一区在线| 色婷婷av一区二区三区大白胸| 亚洲一二三区视频在线观看| 欧美综合亚洲图片综合区| 青青草原综合久久大伊人精品 | 一区二区三区在线免费视频| 69堂成人精品免费视频| 国产资源在线一区| 中文字幕亚洲成人| 欧美一区二区大片| 99久久免费视频.com| 成人午夜视频免费看| 亚洲伦理在线精品| 欧美大片在线观看一区| 粉嫩aⅴ一区二区三区四区五区| 亚洲手机成人高清视频| 欧美一区二区在线视频| 波多野结衣一区二区三区 | 国产精品夜夜嗨| 亚洲视频你懂的| 精品欧美乱码久久久久久1区2区| 成人精品国产免费网站| 亚洲r级在线视频| 亚洲国产高清aⅴ视频| 欧美日本一区二区在线观看| 国产成人丝袜美腿| 亚洲高清在线精品| 国产精品污www在线观看| 91精品国产综合久久香蕉麻豆| 国产麻豆日韩欧美久久| 亚洲sss视频在线视频| 国产精品久久久久久久久动漫| 精品婷婷伊人一区三区三| 国产精品69久久久久水密桃| 日日摸夜夜添夜夜添国产精品| 中文乱码免费一区二区| 7777精品伊人久久久大香线蕉的| 国产精品综合视频| 青青草原综合久久大伊人精品优势| 国产精品无人区| 2019国产精品| 欧美高清视频不卡网| 99久久国产综合色|国产精品| 玖玖九九国产精品| 亚洲丶国产丶欧美一区二区三区| 久久久久9999亚洲精品| 欧美精品在线观看一区二区| 91麻豆免费看片| 国产成人av电影在线| 精品一二三四区| 爽好久久久欧美精品| 一区二区在线观看免费视频播放| 日韩欧美一区电影| 欧美日韩黄色一区二区| 色偷偷久久人人79超碰人人澡| 福利电影一区二区三区| 国产在线精品一区二区不卡了| 亚洲一区二区三区四区中文字幕| 国产欧美日韩在线| 精品国产1区二区| 精品国产91久久久久久久妲己 | 欧美少妇xxx| 欧美亚洲动漫制服丝袜| 99久久精品久久久久久清纯| 国产精品 日产精品 欧美精品|