比如我要读取word中字符串“编号:”后边的10位字符,请问怎么读取?谢谢了

解决方案 »

  1.   

    全读出来,然后就是普通字符串操作,pos,copy....
      

  2.   

    先把整句读到str里,然后
    delete(str,1,length('编号:'));
    str里就是你要的数据
      

  3.   

    如果你的文件是带颜色或字体大小等格式的文档,那么楼上的两位同志的说法是无效的。或者可以说没有说到核心上。请问你的Word对应的文件是什么格式?如果是Doc,那就非常麻烦了。如果是RTF,那么可以用控件带格式读出来。这样相对来说非常简单。你QQ多少?
      

  4.   

    doc也可以直接读纯文本http://industry.ccidnet.com/art/1079/20040603/643221_1.html
      

  5.   

    回1、2楼:不知道如何操作,所以才过来问一下。回3楼:文件是doc的,颜色和字体都是默认,我是这样想的,先查找“编号:”这个字符,然后当标后移一位,读取10位字符,不知道这样行不行,我没弄过word,不知道读取的时候是否连带格式也是一起读取的。Q:604766108
      

  6.   

    4楼我给的连接里有方法可以读出word文档的文字内容到一个string,然后你
    var
       str:string;
    begin
    str:=copy(wordstr,pos('编号:',wordstr)+5,10);
    end;上面的wordstr是你已经取到的word的文本内容. pos函数是在一个字符串中找第一个出现的指定子串的位置. pos('编号:',wordstr)得到的是"编号:"在wordstr中的位置,+5是定位到冒号后(中文是两字节的,如果那个冒号是中文就+6).copy函数是从一个字串的指定位置复制指定长度的字符
      

  7.   

    回 skylkj
    这个例子正在看,但有个问题是,我的word从几百k到2M多,如果全部读取进来会非常慢的,效率不高,上个例子中的方法2读取指定字符的这个不知道是否包含格式,如果不包括,那么只要知道“编号:”的所在位置就可以了。等晚上试试看如何//方法(2): 取 1 -- 4 位的字符 ,包含表格 
    myRange:=WordDoc.Range;
    myRange.Start:=0;
    myRange.End_ :=4;
      

  8.   

    你用Word把Doc转成RTF格式,然后用程序处理,非常简单的。
    加你QQ没反应。
      

  9.   

    非常感谢mwy654321和skylkj的回答,mwy654321把问题解决了.