| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1407 人关注过本帖
标题:关于从文本文件读取信息的几个问题
只看楼主 加入收藏
pisata
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2010-10-9
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
关于从文本文件读取信息的几个问题
一个表有两个字段,一个叫“变量名”,一个叫“变量值”,变量名是事先输入好的,有一个txt文件,里边有n个数据,例如:
   12   10   159  12   13 596
有三个问题想请教一下大家:
1、首先,如何把这几个数按顺序插入到“变量值”里边?注意:txt文件里的各数字之间的空格是不定的,比如第一个数据之前会有几个空格,怎样操作只保留各数据之间的一个空格?
2、把问题1的问题解决后,如果我只想把第3个数到第5个数输入到“变量值”里边,用什么命令?如果数字之间夹杂有非数字的内容怎么提取数字?
谢谢大家!
搜索更多相关主题的帖子: 文本文件 
2011-01-06 13:55
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
如果知道有哪些非数字字符,先将它们置换掉会简单一点。

相互学习,互相交流,共同提高。
2011-01-06 16:36
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
读出来解析

★★★★★为人民服务★★★★★
2011-01-06 18:41
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
假设楼主的“变量值”是字符型:
my_str=FILETOSTR("i:\t.txt")+" "
n0=0
*只取第3-5个数
*n1=3
*n2=5
n1=1
n2=LEN(my_str)  
my_n=""
ckg=.t.
USE i:\表名
FOR i=1 to LEN(my_str)
    n=SUBSTR(my_str,i,1)
    IF !ckg .and. !EMPTY(my_n)
        n0=n0+1
        IF BETWEEN(n0,n1,n2)
            APPEND BLANK
            REPLAC 变量值 with my_n
        ENDIF
        my_n=""
    ENDIF
    ckg=IIF(n=" ",.f.,.t.)
    IF ISDIGIT(n) .and. ckg
        my_n=my_n+n   
    ENDIF
NEXT



[ 本帖最后由 qjbzjp 于 2011-1-6 18:43 编辑 ]

相互学习,互相交流,共同提高。
2011-01-06 18:42
pisata
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2010-10-9
收藏
得分:0 
谢谢!
比如我的数字改成了:1.25   -1.497  A3B  6.8864   -9.10887
按上边“故乡”版主的代码的话这里的负号和小数点就没有了,而且那个“A3B”我并不需要,怎么办啊?
2011-01-06 23:19
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:5 
n=alines(aa,filetostr('t.txt'),4,' ')
for i=1 to n
  ?aa(i)
endfor

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-01-06 23:52
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:15 
my_str=FILETOSTR("i:\t.txt")+"  "
n0=0
*只取第3-5个数
*n1=3
*n2=5
n1=1
n2=LEN(my_str)  
my_n=""
ckg=.t.
USE i:\表名
FOR i=1 to LEN(my_str)
    n=SUBSTR(my_str,i,1)
    IF !ckg .and. !EMPTY(my_n)
        n0=n0+1
        IF BETWEEN(n0,n1,n2)
            APPEND BLANK
            REPLAC 变量值 with my_n
        ENDIF
        my_n=""
    ENDIF
    ckg=IIF(n=" ",.f.,.t.)
    IF ckg
        my_n=my_n+n
    ENDIF
    IF !CHRTRAN(my_n,"abcdefghijklmnopqrstuvwxyz;
        ABCDEFGHIJKLMNOPQRSTUVWXYZ","")=my_n
        my_n=""
    ENDIF
NEXT

相互学习,互相交流,共同提高。
2011-01-07 11:09
pisata
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2010-10-9
收藏
得分:0 
回答的很到位啊,


[ 本帖最后由 pisata 于 2011-1-7 22:00 编辑 ]
2011-01-07 21:34
快速回复:关于从文本文件读取信息的几个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044709 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved