首页 > 用户发贴区 > 编程问题提问区 > 编程题目求救!!大哥,大姐们,谢谢了!
2006
09-09

编程题目求救!!大哥,大姐们,谢谢了!


题目内容是这样的,有一个文本文件,是从EXCEL格式转换而来的,其中有字母,数字,汉字,现在我想找到某些行,把他替换成其他内容,新内容在另外一个文件中。


比如:找到































SLNF80020011 3 702   垫圈10 GB/T95-2002 N 16 I          


替换成































SLNF80020011 3 702 GAB01001 平垫圈A级碳钢-M10 95 N 16 I          


其中红色字体为不变内容


编程题目求救!!大哥,大姐们,谢谢了!》有 1 条评论

  1. cboy 说:

    思路很简单的。因为在这个EXCEL文本中有一个特殊字符,就是一个制表符,或者说就是完全是一个空字符串,此制表符是用键盘上的tab键在文本文件中就能使用。那么相当于是一个分隔,既然知道是一个分隔,写一个函数处理这个分隔,然后把分隔的后的每段写到一个数组。然后替换一些数组里的值就算替换了表格里的值,最后再把数组存成一个整体。如果说要找行。可以使用C或者C++的文本操作函数,一行一行地读。

    下面提供一个C++的分隔代码

    CString strTmp1,strLine=”This is Test”,strTemp[20];//定义了一个CString类,MFC中的字符串类
    int n=0;定义strTemp的数组当前下标
       for(int i=0;i<strLine.GetLength();i++)//GetLength是得到这个符串的字符数
         {
          strTmp1+=strLine.Mid(i,1);//mid函数。这里的调用是用来获取一个字符。
          if(strLine.Mid(i,1)==_T( ” “)||i==strLine.GetLength()-1)//如果值是空格就执行,以空格做为分隔,可以把这个空格换成制表符。或者如果i为最后长度
          {
           strTmp1.TrimRight();//使用右边的空格去除
           strTemp[n++]=strTmp1;
           strTmp1.Empty();//清空此变量
           if(n==20) break;//如果大于数组的长度就停止退出
          }
        }

    这段代码执行以后使strTemp[0]=”This”,strTemp[1]=”is”,strTemp[2]=”Test”,达到了效果。不过strTemp在这里我是为了方便所以使用了一个固定数组。最好采用动态数组。

留下一个回复