最近碰到一个问题,要利用空格将类似TXT文件中的字符提取出来,然后重新组成新的文件
文件内容如下: "AB1 CD2 11 22 33 44 55 66 77 88 99"
想提取后组成3个文件内容分别为:"AB1 CD2 11 44 77"
"AB1 CD2 22 55 88"
"AB1 CD2 33 66 99"
自己水平有限,写了一些,但是不得要领,盼大虾们相助.
我自己写的一些东西:
CString pathname;
CStdioFile file;
file.Open(pathname,CFile::modeRead);
CString FileData;
file.ReadString(FileData);
FileData.TrimRight();//这里想利用TrimRight把空格右边的去掉,但后面读出来发现还是原来的东西???
MessageBox(FileData);
文件内容如下: "AB1 CD2 11 22 33 44 55 66 77 88 99"
想提取后组成3个文件内容分别为:"AB1 CD2 11 44 77"
"AB1 CD2 22 55 88"
"AB1 CD2 33 66 99"
自己水平有限,写了一些,但是不得要领,盼大虾们相助.
我自己写的一些东西:
CString pathname;
CStdioFile file;
file.Open(pathname,CFile::modeRead);
CString FileData;
file.ReadString(FileData);
FileData.TrimRight();//这里想利用TrimRight把空格右边的去掉,但后面读出来发现还是原来的东西???
MessageBox(FileData);
"AB1 CD2 11 22 33 44 55 66 77 88 99" 最右边是99,没有空格所以还是返回原来的
VOID类型赋值给CString类型,肯定不行
#include <stdio.h>char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;int main( void )
{
printf( "Tokens:\n" );
// Establish string and get the first token:
token = strtok( string, seps ); // C4996
// Note: strtok is deprecated; consider using strtok_s instead
while( token != NULL )
{
// While there are tokens in "string"
printf( " %s\n", token ); // Get next token:
token = strtok( NULL, seps ); // C4996
}
}
这样功能的函数有许多帖子,在CSDN中搜素下吧。
全文如下:
我的问题是这样的,
文件中有很多字符串,以字符串"啊"分界
例如
中华人民共和国啊世界大团结啊你好啊什么
要获取其中的
中华人民共和国
世界大团结
你好
什么
怎么办
函数的原型为
CString GetString(LPCTSTR lpszFileName,int nIndex,LPCTSTR lpszSubStr);
lpszFileName为文件名,nIndex为0开始的序号,lpszSubStr为分隔字符串,这里为"啊"
有谁能写这段代码啊,谢谢,或者提供一些方法和函数
CString GetString(LPCTSTR lpszFileName,int nIndex,LPCTSTR lpszSubStr)
{
CFile cf;
if(!cf.Open(lpszFileName,CFile::modeRead))return "";
CString str;
cf.Read(str.GetBuffer(cf.GetLength()),cf.GetLength());
cf.Close();
str.ReleaseBuffer();
int iFind;
int iSize=strlen(lpszSubStr);
for(int i=0;i<nIndex;++i)
{
if((iFind=str.Find(lpszSubStr))!=-1)str=str.Mid(iFind+iSize);
else return "";
}
if((iFind=str.Find(lpszSubStr))!=-1)return str.Left(iFind);
else return str;
}