没分了,但有个问题需要大家帮忙喔

wode3000   2007-9-6 15:27 楼主
想读一个.txt文件中的字符串长度,这样写错在哪里?
HANDLE hFile1;
        DWORD dwBytesRead1;
        char buff1[512];
       
        hFile1 = CreateFile(L"\\Storage Card\\Radio1.TXT",GENERIC_READ,0,NULL,OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL,NULL);
        if(hFile1 == INVALID_HANDLE_VALUE)
        {
                return 0;
        }
       
        if(ReadFile(hFile1 , buff1, 512, &dwBytesRead1, NULL))
        {
                if( strlen(buff1) != 0)
                {
                        //AfxMessageBox(L"8600");
                        ((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(1);
                }
        }

大家帮忙看下喔   超级谢谢!!!!

回复评论 (9)

你的程序现在出了什么问题?
点赞  2007-9-6 15:35
现在问题是无法读出文件的内容,上面代码就是想判断文件中的字符串长度,因为我的文件只有两种情况,1是存一个固定的字符串,2是文件中为空。所以想通过判断字符串长度来进行判断!
点赞  2007-9-6 15:44
CE里没有专门的打开文件的API?
不会吧?
点赞  2007-9-6 16:05
楼上。。。。打击我。。     5555
点赞  2007-9-6 16:22
现在可以确定是这段的错误:
if(ReadFile(hFile1 , buff1, 512, &dwBytesRead1, NULL))
        {
                if( strlen(buff1) != 0)
                {
                        //AfxMessageBox(L"8600");
                        ((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(1);
                }
        }

大家有空的话帮忙看看啊
点赞  2007-9-7 08:30
如果是Unicode问题的话,用_tcslen试试
点赞  2007-9-8 00:02
ReadFile这个函数的参数dwBytesRead1,不就是代表实际读到内存中的字节数么!!
你判断这个值是否大于一不可以么?
if( strlen(buff1) != 0)
改成
if(dwBytesRead1>1 )
成不
点赞  2007-9-8 13:51
是的,用if( dwBytesRead1 != 0)應該可以!
Nonzero indicates success. Zero indicates failure.
点赞  2007-9-8 15:06
用dwBytesRead1 来判断应该可以的。
要用strlen(buff1)来判断,我想应该在开始对buff1初始化一下
ZeroMemory(buff1, sizeof(buff1));
点赞  2007-9-11 11:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复