MFC笔记8
1.在循环使用数组时需要清理数组
CString str;
memset(str,0,strlen(str));
判断两个字符串包含数字大小是否相等
CString str="22";
if(str!="22"){}
2.读取文件
//2.读人员文件renyuan.txt
HANDLE rFile;
DWORD dwRet;
memset(str,,);
rFile = CreateFile(_T("\\NANDFlash\\renyuan.txt"),GENERIC_READ ,,NULL,OPEN_EXISTING,,NULL);
if(rFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("打开失败"));
return false;
}else{ ReadFile(rFile,str,,&dwRet,NULL);
ss=str;
do{
index = ss.Find( ';' );
temp=ss.Left( index ) ;
n = temp.Find( ':' );
renyuan_name[num_renyuan]=temp.Left(n);
arr=temp.Right( temp.GetLength( )-n- ) ;
m = arr.Find( ',' );
renyuan_gonghao[num_renyuan]=arr.Left(m);
renyuan_danwei[num_renyuan]=arr.Right( arr.GetLength( )-m- ) ;
ss=ss.Right( ss.GetLength( )-index- );
num_renyuan++;
}while(ss.Find( ';' )!=-);
}
CloseHandle(rFile);
或者
memset(str,0,2000);
num_renyuan=0;
hFile =file.Open(_T("\\NANDFlash\\renyuan.txt"),CFile::modeRead );
if(hFile == -1){
AfxMessageBox(_T("file open error\n"));
}
file.Read(str, 2000);
ss=str;
do{
index = ss.Find( ';' );
temp=ss.Left( index ) ;
n = temp.Find( ':' );
renyuan_name[num_renyuan]=temp.Left(n);
arr=temp.Right( temp.GetLength( )-n-1 ) ;
m = arr.Find( ',' );
renyuan_gonghao[num_renyuan]=arr.Left(m);
renyuan_danwei[num_renyuan]=arr.Right( arr.GetLength( )-m-1 ) ;
ss=ss.Right( ss.GetLength( )-index-1 );
num_renyuan++; }while(ss.Find( ';' )!=-1);
file.Close();
写文件代码:
//写入数据
HANDLE hFile;
DWORD dwRet; char str[2000]; hFile = CreateFile(_T("\\NANDFlash\\renyuan.txt"),GENERIC_READ | GENERIC_WRITE,0,NULL,TRUNCATE_EXISTING,0,NULL); if(hFile == INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("打开失败")); }else{
if(MessageBox(_T("确认删除用户,密码?"),_T("提示"),MB_OKCANCEL)==1)
{
int i,j;
//1.先将数据更新到数组,
for(i=0,j=0;i<num_renyuan;i++,j++)
{ if(i<flag||i>flag){
renyuan_name[j]=renyuan_name[i];
renyuan_gonghao[j]=renyuan_gonghao[i];
renyuan_danwei[j]=renyuan_danwei[i];
}else if(i==flag){
i++;
renyuan_name[j]=renyuan_name[i];
renyuan_gonghao[j]=renyuan_gonghao[i];
renyuan_danwei[j]=renyuan_danwei[i];
}
}
num_renyuan--;
//2.然后将数据从数组更新到文件中
for(i=0;i<num_renyuan;i++)
{
CString temp;//将temp清零
temp+=renyuan_name[i];
temp+=":";
temp+=renyuan_gonghao[i];
temp+=",";
temp+=renyuan_danwei[i];
temp+=";";
sprintf(str,"%S",temp);//S这样str就是完整的"username:passwors;",如果换成s,只会将一个字符传给str
WriteFile(hFile, str, strlen(str),&dwRet,NULL);
}
CloseHandle(hFile);
OnOK();
}
}
MFC笔记8的更多相关文章
- MFC笔记
一.Win32基本程序概念 所有的windows程序都必须载入windows.h MFC程序都有一个Stdafx.h文件,它载入了MFC框架必须的文件. Windows程序以消息为基础,以事件驱动之. ...
- MFC笔记10
1. CDC MemDC1; MemDC1.SetBkMode(OPAQUE); 背景模式,VC6下面有三种:/* Background Modes */#define TRANSPARENT 1// ...
- MFC笔记7
1.VS中显示行号 工具 -> 选项 -> 文本编辑器 -> C/C++ -> 行号 2.VS中调整字体大小 工具 -> 选项 -> 环境->字体和颜色 3. ...
- MFC笔记6
1.MFC文件的读写操作 写操作 创建一个编辑框(IDC_INFOR_EDIT1),在里面输入信息,创建一个按钮(IDC_BUTTON),点击按钮会触发(OnBnClickedButton2()函数) ...
- MFC笔记5
1.MessageBox() 引用自(http://www.douban.com/note/40199603/) 一 函数原型及参数 function MessageBox(h ...
- MFC笔记3
1. C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下: 工具(T) -&g ...
- MFC笔记2
1.Create()函数创建,该函数原型如下: BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* ...
- MFC笔记1
1.在对话框文档中定义两个定时器,每间隔5秒弹出一个消息框提示“定时器1”,每隔5秒弹出一个消息框提示“定时器2” UINT ID_TIMER1 = 1 , ID_TIMER2 = 2; //设置 ...
- MFC笔记(DN)
01:MFC应用程序编程 02:MFC菜单.工具栏.状态栏 03:视图窗口
- MFC笔记<持续更新>
1.设置垂直滚动条的位置在末尾 SCROLLINFO si; GetScrollInfo(SB_VERT, &si, SIF_PAGE | SIF_RANGE | SIF_POS); si.f ...
随机推荐
- APP加急审核
提交加急审核需要理由,一般涉及到银行信息,或者崩溃打不开这种的比较容易通过.反正苹果很苛刻,一般不给处理.如果处理第二天就可以下载最新了,省去了漫漫的等待.一个成功加急审核的借口-- We found ...
- 基于scrapy-redis分布式爬虫(简易)
redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以.原因有二. 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls ...
- springboot中get post put delete 请求
组合注解(RequestMapping的变形) @GetMapping = @RequestMapping(method = RequestMethod.GET) @PostMapping = @Re ...
- 帝国cms自动保存图片
<?=ECMS_ShowEditorVar("newstext",$ecmsfirstpost==1?"":stripSlashes($r[newstex ...
- PTA——黑洞数
PTA 7-44 黑洞数 我的程序,一个用例通不过 #include<stdio.h> void sort(int *a,int n); int main() { ; scanf(&quo ...
- Arch Linux root密码忘记了怎么办
https://wiki.archlinux.org/index.php/Reset_root_password_(简体中文)https://wiki.archlinux.org/index.php/ ...
- Cache架构设计
Cache策略 定时过期策略 定时过期的好处是Cache节点的个数符合实际需求,不会造成资源滥用和服务器压力 定时过期适合访问量较大,实时性要求不高的情况 如果访问量小,定时过期会造成Cache命中率 ...
- 前后端如何保持长连接?---websocket
1. pc端的应用,一般会采用前端定时请求后台; 2. app定时去访问后台的话,对用户来说并不友好,会消耗大量的流量,移动端最好的方式就是后台主动向app推送信息; 3. H5提供了一种比较好的方式 ...
- 让所有浏览器支持HTML5 video视频标签
HTML5究竟需要多少种视频编码格式 当前,video 元素支持三种视频格式:Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件MPEG4 = 带有 H.264 视频编 ...
- 协议并发测试工具 BoHexTest
BoHexTest V1.0.3 1.添加连接LOG打印2.优化代理及并发策略 大小: 1074688 字节修改时间: 2017年10月3日, 10:24:26MD5: EBAE5A17F7F5ED0 ...