| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3426 人关注过本帖, 1 人收藏
标题:如何解决想在一个字段里存放800多个符的问题
只看楼主 加入收藏
hn9810
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2010-7-13
收藏
得分:0 
以下是引用TonyDeng在2012-8-18 12:38:16的发言:

直接从.TXT文件中创建表并把数据转录过去就可以了
我现在就是想知道转录过去的方法,谢谢
2012-08-18 16:49
hn9810
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2010-7-13
收藏
得分:0 
楼主你弄得出来不
2012-08-18 17:02
hn9810
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2010-7-13
收藏
得分:0 
我现在没时间把所有的结构都做出来,就以53.txt作个吧。现在的东东是可以做的。
2012-08-18 17:13
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11799
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用hn9810在2012-8-18 17:02:39的发言:

楼主你弄得出来不
谁是楼主?我已经糊涂了!

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-08-18 19:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
没有40楼所说的那个数据字典,我也不想动手写代码。

要按你原先的做法,就设计表的字段为Memo类型,用:
REPLACE 字段名 WITH FGETS(文件句柄)
把41行数据引入到表中即可。

授人以渔,不授人以鱼。
2012-08-18 20:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
使用低级文件流的方法:
程序代码:
nHandle = FOPEN("53.TXT")
cText = FGETS(nHandle)        && 从当前位置开始读入一整行到字符串cText中,如此重复读每一行,字符数不限长度
&& 将读入的cText抄到表中记录的Memo字段中
FCLOSE(nHandle)

授人以渔,不授人以鱼。
2012-08-18 20:14
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
回复 56楼 TonyDeng
还是你有耐心,看样子又是一个不眠之夜啊
2012-08-18 21:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我晚上才不弄那个哩,干自己的活。

授人以渔,不授人以鱼。
2012-08-18 21:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把你53.TXT中的数据导入下图的表中了,看看是不是这样?

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 TonyDeng 于 2012-8-19 02:59 编辑 ]

授人以渔,不授人以鱼。
2012-08-19 02:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
CLEAR ALL
CLOSE DATABASES ALL
CLEAR 

SET DECIMALS TO 4

* CreateDataDictionary()
Import_Table("53.TXT", "53")

CLOSE DATABASES ALL
CLEAR ALL
RETURN 

* 导入数据
FUNCTION Import_Table(tcDataFileName, tcTableName)
    LOCAL lnHandle, lnLine, lcFieldName, lnIndex, lnValue
    LOCAL lnFields, lnRecords
    LOCAL llSuccess
   
    OPEN DATABASE DATA1 EXCLUSIVE
   
    * 打开数据文件
    lnHandle = FOPEN(tcDataFileName)
    IF lnHandle < 0
        MESSAGEBOX("数据文件" + tcDataFileName + "打开失败!", 16)
        RETURN
    ENDIF
    * 跳过前面9行
    FOR lnLine = 1 TO 9
        FGETS(lnHandle)
    NEXT
    * 获取字段数
    lnFields = INT(VAL(FGETS(lnHandle)))
    * 创建数据表结构
    SET SAFETY OFF
    USE Dictionary EXCLUSIVE IN 0
    IF INDBC("_" + tcTableName, "TABLE")
        REMOVE TABLE ("_" + tcTableName)
    ENDIF
    COPY STRUCTURE EXTENDED TO ("_" + tcTableName) DATABASE Data1
    USE ("_" + tcTableName) ALIAS _Structure EXCLUSIVE IN 0
    ZAP IN _Structure
    llSuccess = .T.
    FOR lnLine = 1 TO lnFields
        lcFieldName = ALLTRIM(FGETS(lnHandle))
        SELECT Dictionary
        LOCATE ALL FOR ALLTRIM(Dictionary.Field_Name) == lcFieldName
        IF !FOUND("Dictionary")
            MESSAGEBOX("发现数据字典中没有的字段:" + lcFieldName, 16)
            llSuccess = .F.
            EXIT
        ENDIF
        SELECT _Structure
        APPEND BLANK
        REPLACE _Structure.Field_Name WITH Dictionary.Field_Name
        REPLACE _Structure.Field_Type WITH Dictionary.Field_Type
        REPLACE _Structure.Field_Len  WITH Dictionary.Field_Len
        REPLACE _Structure.Field_Dec  WITH Dictionary.Field_Dec
    NEXT
    USE IN _Structure
    USE IN Dictionary
   
    * 创建导入数据表
    SET SAFETY OFF
    IF INDBC(tcTableName, "TABLE")
        REMOVE TABLE (tcTableName)
    ENDIF
    SELECT 0
    CREATE (tcTableName) DATABASE Data1 FROM ("_" + tcTableName)
    USE
   
    * 导入数据
    USE (tcTableName) ALIAS _Data EXCLUSIVE IN 0
    USE ("_" + tcTableName) ALIAS _Structure EXCLUSIVE IN 0
    * 获取记录数
    lnRecords = INT(VAL(FGETS(lnHandle)))
    FOR lnLine = 1 TO lnRecords
        SELECT _Data
        APPEND BLANK
        lcLineContent = FGETS(lnHandle, RECSIZE("_Data"))
        FOR lnIndex = 1 TO lnFields
            lcField = FIELD(lnIndex, "_Data")
            SELECT _Structure
            LOCATE ALL FOR UPPER(ALLTRIM(_Structure.Field_Name)) == lcField
            SELECT _Data
            DO CASE
                CASE _Structure.Field_Type == 'C'
                    REPLACE (lcField) WITH LEFT(lcLineContent, _Structure.Field_Len)
                CASE _Structure.Field_Type == 'N'
                    lnValue = VAL(LEFT(lcLineContent, _Structure.Field_Len)) / (10 ^ _Structure.Field_Dec)
                    REPLACE (lcField) WITH lnValue
            ENDCASE
            lcLineContent = SUBSTR(lcLineContent, _Structure.Field_Len + 1)
        NEXT
    NEXT
   
    USE IN _Structure
    SELECT _Data
    BROWSE
   
    * 关闭数据文件句柄
    FCLOSE(lnHandle)

    RETURN llSuccess
   
ENDFUNC

* 创建数据字典
PROCEDURE CreateDataDictionary()
    LOCAL lnHandle, lcLineContent
   
    LOCAL lcDelimiter
    lcDelimiter = ' '    && 界定符是空格
   
    USE Dictionary_Structure EXCLUSIVE IN 0
    SET SAFETY OFF
    ZAP IN Dictionary_Structure
    lnHandle = FOPEN("格式.TXT")
    DO WHILE !FEOF(lnHandle)
        lcLineContent = CHRTRAN(FGETS(lnHandle), CHR(9), lcDelimiter)
        IF !EMPTY(lcLineContent)
            APPEND BLANK IN Dictionary_Structure
            REPLACE Dictionary_Structure.Field_Name WITH GETWORDNUM(lcLineContent, 1, lcDelimiter) IN Dictionary_Structure
            REPLACE Dictionary_Structure.Field_Type WITH GETWORDNUM(lcLineContent, 2, lcDelimiter) IN Dictionary_Structure
            REPLACE Dictionary_Structure.Field_Len  WITH INT(VAL(GETWORDNUM(lcLineContent, 3, lcDelimiter))) IN Dictionary_Structure
            REPLACE Dictionary_Structure.Table_Cmt  WITH GETWORDNUM(lcLineContent, 4, lcDelimiter) IN Dictionary_Structure
            IF Dictionary_Structure.Field_Type == 'A'
                REPLACE Dictionary_Structure.Field_Type WITH 'C'
            ENDIF
        ENDIF
    ENDDO
    FCLOSE(lnHandle)
    USE IN Dictionary_Structure
   
ENDPROC

授人以渔,不授人以鱼。
2012-08-19 03:00
快速回复:如何解决想在一个字段里存放800多个符的问题
数据加载中...
 
   



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

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