我要做个程序,需要在已经设定好的目录下,提取所有的文件,文件名没有规则,存放的内容是字符串,内容类似于“|1|86771002000|ZTEIGW|2006-10-18 01:15:11|20|||6”,
并将每个文件中存放的字符串分割处理后存放进数据,然后再删除该文件,现在我有以下几个问题,请教高手:
1、如果获取某个目录下有多少个文件?
2、如果枚举完该目录下的所有文件,在枚举过程是否可以删除已经枚举过的文件?请帮忙给出一小段代码,或者给出函数;
3、我需要逐行取出字符串,那么用什么类操作比较方便,CFILE是否方便打开?
4、像这样“|1|86771002000|ZTEIGW|2006-10-18 01:15:11|20|||6”的字符串,我要根据|分隔符将每块分割出来存放进一个数组,那么用什么办法分割比较方便,逐个字符去分析太麻烦了?
5、麻烦给一段MFC操作ORACLE的代码,包括链接,插入数据的就可以了,我没做过。
问题比较多,但都比较简单,因为我有5年没用过VC了,所以请各位耐心给我点提示代码,我才好去查MSDN,谢谢。
并将每个文件中存放的字符串分割处理后存放进数据,然后再删除该文件,现在我有以下几个问题,请教高手:
1、如果获取某个目录下有多少个文件?
2、如果枚举完该目录下的所有文件,在枚举过程是否可以删除已经枚举过的文件?请帮忙给出一小段代码,或者给出函数;
3、我需要逐行取出字符串,那么用什么类操作比较方便,CFILE是否方便打开?
4、像这样“|1|86771002000|ZTEIGW|2006-10-18 01:15:11|20|||6”的字符串,我要根据|分隔符将每块分割出来存放进一个数组,那么用什么办法分割比较方便,逐个字符去分析太麻烦了?
5、麻烦给一段MFC操作ORACLE的代码,包括链接,插入数据的就可以了,我没做过。
问题比较多,但都比较简单,因为我有5年没用过VC了,所以请各位耐心给我点提示代码,我才好去查MSDN,谢谢。
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
}
-----------------------------------
http://community.csdn.net/Expert/TopicView.asp?id=50791122.加上 DeleteFile 即可3. 无所谓 .
CString str=_T("|1|86771002000|ZTEIGW|2006-10-18 01:15:11|20|||6");
BYTE buf[1024][64]; //自己定义一个大小,也可动态生成
CString resToken;
int curPos = 0;
int i = 0;resToken = str.Tokenize(_T("|"), curPos); // 用 '|' 作为分隔符
while (resToken != "")
{
strcpy(buf[i], resToken); // 复制到 buf 中
resToken = str.Tokenize(_T("|"), curPos);
i++;
};
CString line;
file.ReadString(line);
cout<<endl<<endl<<line;
由于文件有多行,所以我定义了一个2维数组,但是循环一会老是出错,各位有空帮忙看看?
谢谢了
int CWork::GetSourceData(CString FileName)
{
//该程序处理数据文件:1提取原始数据到原始数组;
CStdioFile f1;
CString line;
CString resToken;
int curPos = 0;
int i = 0;
int j=0;
FileName.Replace("\\","\\\\");
CString Col[100];
CString SourceData[30000][100];//将文件提取出来的字符装入该数组中
//memset(&SourceData,0,sizeof(SourceData));
if( !f1.Open( FileName, CFile::modeRead| CFile::typeText ) )
{
m_hdlg->DisplayMessage("文件打开不成功,可能是文件丢失或者其他原因",1);
return -1;//file could not be found
}
while(f1.ReadString(line))
{
i=0;
resToken = line.Tokenize(_T("|"), curPos); // 用 '|' 作为分隔符
while (resToken != "")
{
SourceData[j][i]=resToken; // 复制到 buf 中
resToken = line.Tokenize(_T("|"), curPos);
i++;
} j++;
}
return j;}
TGPGetData.exe 中的 0x00401e19 处未处理的异常: 0xC0000005: 写入位置 0x00000000 时发生访问冲突