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 ...
随机推荐
- 转"container of()函数简介"链接地址
https://blog.csdn.net/s2603898260/article/details/79371024 提示关键字: 指针0的使用 typeof的使用
- Java_集合_ArrayLish Comparator比较排序 小笔记
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; class Teacher ...
- BSS, DATA, TEXT, HEAP, STACK
BSS, block start segment, static memory, to store the global data which are not initialized. DATA, d ...
- dmi-ipmi
api,cli,gui,tui,dmi(smbios),ipmi,bios,efi,uefi SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所 ...
- oracle存储结构
数据库的物理存储结构 select * from v$datafile; 数据库的逻辑存储结构,从表空间开始查起一个数据库对象的逻辑存储结构如下表空间-段-区-块 select * from dba_ ...
- JS 点击复制
一.原理分析 浏览器提供了 copy 命令 ,可以复制选中的内容 document.execCommand("copy") 如果是输入框,可以通过 select() 方法,选中输入 ...
- Javascript var 和 let 的区别
Javascript var 和 let 的区别 var 是函数块的全局变量. let 是代码块的局部变量. let 变量不会提升,如果先使用后定义会 undefind. 参考: https://de ...
- 随机数的组合问题(JavaScript描述)
随机数的组合问题在面试时是经常考的,比如之前我就被问到:“有一个可以生成1-5的随机数函数,怎样把它扩大到1-7?” 在解决这个问题之前,先来看看另外一个比较简单的问题:“有一个可以生成1-7的函数, ...
- 请确保 ASP.NET State Service (ASP.NET 状态服务)已启动 问题解决
当iis部署的网站访问遇到如下错误时: 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同.如 ...
- 5、在Dreamweaver cc 2017中添加服务器扩展组件
Adobe DW CC 2015对HTML5.CSS3.jQuery.jQuery UI都有很好的支持,无奈这个版本却未提供开发动态网站所需要的服务器行为面板.数据库面板以及绑定面板等.要添加这个面板 ...