void CBillhandleDlg::OnButtonA()
{ HANDLE hFile;
DWORD nBytes;
char line[1024]={0},ch;
int i=1;
hFile = CreateFile(("E://代码//1.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);
if( hFile != INVALID_HANDLE_VALUE )
{ BOOL bResult;
bResult = ReadFile(hFile, line,sizeof(line),&nBytes, NULL) ;
for (;i<sizeof(line);i++)
{ if (line[i]=='|'&&i==1||line[i]=='|'&&i==3)
{ hFile = CreateFile(("F://2.txt"),
GENERIC_WRITE, FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL );
i++;
WriteFile( hFile, line, sizeof(line)-1, &nBytes, NULL );
}
}
}
1.txt:qw|ww|ee|rr|tt|yy|
ss|dd|ff|www|erer|ww|
.......
代码如上我想把1.txt的每条数据的第二个和第三个分割线中间的字符和第五个跟第六个分割线中间的字符提取出来写入到另一个文件里面。但是判断不出来。。求大神帮忙 非常感谢!!
{ HANDLE hFile;
DWORD nBytes;
char line[1024]={0},ch;
int i=1;
hFile = CreateFile(("E://代码//1.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);
if( hFile != INVALID_HANDLE_VALUE )
{ BOOL bResult;
bResult = ReadFile(hFile, line,sizeof(line),&nBytes, NULL) ;
for (;i<sizeof(line);i++)
{ if (line[i]=='|'&&i==1||line[i]=='|'&&i==3)
{ hFile = CreateFile(("F://2.txt"),
GENERIC_WRITE, FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL );
i++;
WriteFile( hFile, line, sizeof(line)-1, &nBytes, NULL );
}
}
}
1.txt:qw|ww|ee|rr|tt|yy|
ss|dd|ff|www|erer|ww|
.......
代码如上我想把1.txt的每条数据的第二个和第三个分割线中间的字符和第五个跟第六个分割线中间的字符提取出来写入到另一个文件里面。但是判断不出来。。求大神帮忙 非常感谢!!
解决方案 »
- 如何打开系统文件夹windows中的工程1.exe?VC代码
- 请串口通讯高手帮忙
- 对话框中的PTCTURE怎么不显示位图
- 如何在VC中调用其它的应用程序?
- 那位高手能讲一下size_t 是怎抹一回事,它是什莫,为什莫要定义他,还有ptrdiff_t
- ATL复合控件的问题
- MDI问题
- 在工具条上创建comboBox控件,怎样隐藏comboBox后面的分隔线???
- 怎样在GDI+中输出一个CString类型的字符串????急求。
- 怎么让SDI的静态切分视图的两个View共享一个Document?
- USGS DEM 数据的读取
- “GetDlgItem”: 函数不接受 1 个参数,“->SetWindowTextA”的左边必须指向类/结构/联合/泛型类型
CString::Midstd::string::find
std::string::substr
//应该改为\\
2.找位置,截取, CString::Find, CString::Mid
(1)C函数
strtok
(2)MFC CString成员函数
Tokenize
TCHAR line[] = {_T("qw|ww|ee|rr|tt|yy|")};
int barIdx = 0;
int subStart = 0;
BOOL bPrint = FALSE;
for (int i = 0; line[i] != (TCHAR)'\0'; i++)
{
if (line[i] == (TCHAR)'|')
{
barIdx++;
}
else if (bPrint)
{
wcout << line[i];
}
if (barIdx == 2 || barIdx == 5)
{
subStart = i;
bPrint = TRUE;
}
else if (barIdx == 3 || barIdx == 6)
{
bPrint = FALSE;
}
}自己写也是可以的,简单写了下。