小弟在写一个从txt文件中读取数据,然后更新数据库的程序。读取函数如下:
void CTxt2oraDlg::OnReadfile()
{
char buf[128];
char ntemp[128];
int nBegin = 0;//nBegin nEnd一开始指向buf头
int nEnd = 0;
while(TxtFile.ReadString(buf,128))
{
for(; nEnd<sizeof(buf);nEnd++)
{
if (nEnd ==' ')
{
strncpy(ntemp,buf,sizeof(nEnd - nBegin));
//把空格符号前的那段数据放到一个数组里面
nEnd = nEnd + 1;//nEnd指向空格下一个字符
break;
//在这里进行更新数据库的操作。。
}
if (nEnd == '\n')//如果是一行结束,转到下一行
{
break;
}
}txtfile.Addstring(ntemp);//把内容在listbox显示
}
}
但是为什么输出的是乱码怎么才可以实现我用这个函数的时候全部更新数据库中的东西。就是说比如天txt文件中数据如下:
age name id
12 aaa 121243
12 2sdf qwr
我怎么才可以读一个数据,然后更新,再读一个,救命阿,
void CTxt2oraDlg::OnReadfile()
{
char buf[128];
char ntemp[128];
int nBegin = 0;//nBegin nEnd一开始指向buf头
int nEnd = 0;
while(TxtFile.ReadString(buf,128))
{
for(; nEnd<sizeof(buf);nEnd++)
{
if (nEnd ==' ')
{
strncpy(ntemp,buf,sizeof(nEnd - nBegin));
//把空格符号前的那段数据放到一个数组里面
nEnd = nEnd + 1;//nEnd指向空格下一个字符
break;
//在这里进行更新数据库的操作。。
}
if (nEnd == '\n')//如果是一行结束,转到下一行
{
break;
}
}txtfile.Addstring(ntemp);//把内容在listbox显示
}
}
但是为什么输出的是乱码怎么才可以实现我用这个函数的时候全部更新数据库中的东西。就是说比如天txt文件中数据如下:
age name id
12 aaa 121243
12 2sdf qwr
我怎么才可以读一个数据,然后更新,再读一个,救命阿,
if( fp != NULL )
{
char szAge[10] , szName[20] , szid[10];
while( !feof( fp ) )
{
fscanf( fp , "%s %s %s\n" , szAge , szName , szid );
TRACE( "szAge = %s , szName = %s , szId= %s\n" , szAge , szName , szid );
// 在这里更新数据库并在ListBox中显示
}
fclose( fp );
}
在按钮Click的时候调用m_fp = fopen( "a.txt" , "r+" );不就行了吗?
age,name,id
12,aaa,121243
12,2sdf,qwr
用“,”号分隔开的呢?
fscanf( fp , "%s %s %s\n" , szAge , szName , szid );
这句应该如何阿?
可以这样写
if nEnd==32
不过你的文本文件中这里不一定就是32号的空格,也许是别的不能显示的ASCII字符。