hur.cn - 华软网

 热门搜索

我想写一个文本搜寻的

  作者:未知    来源:网络    更新时间:2011/4/16
假定我文本里面有很多条信息,而每条信息都以B为开首E为末端……而我只需要对其中间的内容举行查询。
假定我键入的搜寻关头字存为search,有一个ccombobox的变量是result作为查询结果增加到里面。
Result.ResetContent();
CStdioFile TableSearch;
TableSearch.Open(szPath,CFile::modeRead);
CString Temp,Data;
TableSearch.ReadString(Temp);
int i,n,m;
for(i=0;i<TableSearch.GetLength();i=m){
n=Temp.Find(_T("B"),i)+1;
m=Temp.Find(_T("E"),i+1);
Data=Temp.Mid(n,m-n);
if(Data.Find(Search)!=-1){
Result.AddString(Data);
}
}
举行如上的操作为什么会无论键入什么关头字,都会把所有的信息增加到result里面?
如果要改应该怎么改呢?谢谢……
---华软 网友回答---
貌似你for写得有点问题..
---华软网友回复---
引用 1 楼 huangcheng90 的回复:
貌似你for写得有点问题..

恩?请指明?
---华软网友回复---
引用 2 楼 xjx1024 的回复:
引用 1 楼 huangcheng90 的回复:

貌似你for写得有点问题..

恩?请指明?

你是否是想逐行读取某个文本资料的数据然后再举行响应的判断?
---华软网友回复---
引用 3 楼 huangcheng90 的回复:
引用 2 楼 xjx1024 的回复:

引用 1 楼 huangcheng90 的回复:

貌似你for写得有点问题..

恩?请指明?

你是否是想逐行读取某个文本资料的数据然后再举行响应的判断?

差不多,不过现在把换行的改成用标识符分开这样
---华软网友回复---
C++">
while(TableSearch.ReadString(Temp))
{
 //执行你的代码...
}

这样用..
---华软网友回复---
C++">
Result.ResetContent();
CStdioFile TableSearch;
if(TableSearch.Open(szPath,CFile::modeRead))
{
CString Temp,Data;
while(TableSearch.ReadString(Temp))
{
int n,m;
n=Temp.Find("B")+1;
if(n>0)
m=Temp.Find("E",n);
if(m>0)
{
Data=Temp.Mid(n,m-n);
Result.AddString(Data);
}
}
}

---华软网友回复---
引用 6 楼 king_hhuang 的回复:
C/C++ code

Result.ResetContent();
    CStdioFile TableSearch;
    if(TableSearch.Open(szPath,CFile::modeRead))
    {
        CString Temp,Data;
        while(TableSearch.ReadString(Temp))
        {……

额,然则这样我就没法与搜索关头字联系在一起额?
而即使我在Result.AddString(Data)这句外面加一个判断
if(int o=Data.Find(Search)>0){
。。。
}
依然会把所有东西弄上来额
---华软网友回复---

Result.ResetContent();
    CStdioFile TableSearch;
    if(TableSearch.Open(szPath,CFile::modeRead))
    {
        CString Temp,Data;
        while(TableSearch.ReadString(Temp))
        {
            int n,m;
            n=Temp.Find("B")+1;
            if(n>0)
                m=Temp.Find("E",n);
            if(m>0)
            {
                Data=Temp.Mid(n,m-n);
                if(Data.Find(Search)>=0)
                   Result.AddString(Data);
            }
        }
    }


---华软网友回复---
引用 8 楼 king_hhuang 的回复:
C/C++ code

Result.ResetContent();
    CStdioFile TableSearch;
    if(TableSearch.Open(szPath,CFile::modeRead))
    {
        CString Temp,Data;
        while(TableSearch.ReadString(Temp))
        {……

麻烦你了谢谢。
我终于发现那里犯错了。不知道哪一个二笔看我的东西的时候把我search的updatedata给删了TOT。分给你吧~      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。