首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于VFP的两个问题问题!一个是如何生成自定义文件,一个是如何取消生成文本中的引号!谢谢帮助! [已结贴,结贴人:microhuamicrohua]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 09:11:08 楼主
    1、生成文本文件的脚本
    close all
    set defa to c:\
    use info1
    copy fields  name,id,nam,code,data to c:\out.txt delimited

    *sdf
    release thisform

    请帮我看看,生成出来的文本字符串都有引号,我也用sdf试过,他是根据字符串长度进行对齐的!我想实现的是每个字段之间用逗号分割,不要有引号!用文本进行“替换”比较麻烦,请问用VFP如何实现?除copy to之外还有没有其他的办法!

    2、我想将数据库表的内容输出,文件名称比方为“430000.20080519.FKD”,其中430000可以固定不变,20080519是从表info1中的data域取出来的,会根据导入数据的时间不同取值都不一样!请问应该怎么实现!

    谢谢高手指点!
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 10:38:181楼 得分:0
    1. copy to c:\out.txt delimited with ,
    2. select info1
      locate
      m.fn = '540000.' + dtos(data) + '.fkd'  && 假设你的 data 列为日期型
      copy to ( m.fn ) ...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 13:49:262楼 得分:20
    1、字符型字段都有引号,可以导出后再替换掉
    close all
    use C:\info1
    copy fields name,id,nam,code,data to c:\out.txt delimited WITH CHAR ','
    =STRTOFILE(STRTRAN(FILETOSTR("C:\OUT.TXT"),'"',''),"C:\OUT.TXT")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 13:53:313楼 得分:0
    2、

    close all 
    use C:\info1
    lcTxtName="c:\430000."+alltrim(data)+".FKD.txt"
    lcStr="copy fields name,id,nam,code,data to "+lcTxtName+" delimited WITH CHAR ','"
    &lcStr.
    =STRTOFILE(STRTRAN(FILETOSTR(lcTxtName),'"',''),lcTxtName)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 14:09:514楼 得分:10
    或者这样:

    SET TEXTMERGE ON NOSHOW
    SET TEXTMERGE TO c:\out.txt

    SELECT info1
    SCAN ALL
        \ < <id>>, <name>>, < <code>>, < <data>>
    ENDSCAN

    SET TEXTMERGE TO
    SET TEXTMERGE OFF
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 14:13:215楼 得分:0
    注意上面 scan ... endscan 循环中的语句发帖后自动变了,应该是:

    SQL code
    \<<id>>,<<name>>,<<prodno>>,<<barcode>>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 14:15:286楼 得分:0
    唉,气死我了!

    SQL code
    \<<id>>,<<name>>,<<code>>,<<data>>

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 14:58:097楼 得分:0
    引用 6 楼 dkfdtf 的回复:
    唉,气死我了!


    SQL code    \ < <id>>, < <name>>, < <code>>, < <data>>


    另生气,CSDN有些细节部分做的稍差些。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 17:01:358楼 得分:0
    谢谢高手们回复,一并谢过!我试试看啊,有问题还要麻烦大家!谢谢了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 17:13:539楼 得分:0
    我设定了data 列为日期类型,数据为20080416,数据导入的时候就报错,是不是格式的问题?如何将20080416转成日期类型?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 17:30:0910楼 得分:0
    data 列为日期类型,数据要为2008/04/16,导入时才可以。
    建议用字符型,然后多建一列为日期型,导入后再将字符型转换成日期后填入日期型字段。

    replace all 日期型字段 with CTOD(left(alltrim(字符型字段),4)+'/'+SUBSTR(alltrim(字符型字段),5,2)+'/'+RIGHT(alltrim(字符型字段),2))


    前提是:

    SET DEFA TO YMD
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 17:30:5111楼 得分:0
    如果data我设置成了字符型,应该如何处理?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 17:35:2112楼 得分:0
    我不想改变数据格式,只是希望在输出的时候生成430000.20080519.FKD的文件名,其中20080519是从数据库data字段中取出来的!以上的方法我试过了,生成出来的是文本,谢谢大家再帮帮我!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 18:38:5813楼 得分:0
    我已经被你搞糊涂了!

    1. 你究竟是要导入还是导出?
      按你的帖子标题应该是想导出,可“数据为20080416,数据导入的时候就报错”跟导出又有什么关系?

    2. 究竟是要导出为 txt 文本格式,还是 xls 格式?
      按你的帖子的内容应该是要导出为 txt,否则不应该有字符串引号的问题;那“以上的方法我试过了,生成出来的是文本”
      又是什么意思?

    如果是不同的问题,不要混在一起写,这样最后谁也看不懂你的要求,怎么帮你?

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-10 21:01:0414楼 得分:0
    引用 13 楼 dkfdtf 的回复:
    我已经被你搞糊涂了!

    1. 你究竟是要导入还是导出?
      按你的帖子标题应该是想导出,可“数据为20080416,数据导入的时候就报错”跟导出又有什么关系?

    2. 究竟是要导出为 txt 文本格式,还是 xls 格式?
      按你的帖子的内容应该是要导出为 txt,否则不应该有字符串引号的问题;那“以上的方法我试过了,生成出来的是文本”
      又是什么意思?

    如果是不同的问题,不要混在一起写,这样最后谁也看不懂你的要求…


      是导出!
      我想把数据库表abc里的数据导出来,以2008年5月19日数据为例,我需要生成的文件名为430000.20080519.FKD,文件名430000是固定不变的,中间的是数据库中对应到data的字段,因为在定义的时候,数据源就是20080519,要是定义日期类型就不能处理,所以在设计数据库表的时候,我定义data是字符型的。
      我现在有两个问题:
      问题1:在生成文件的时候,如何让文件名称可以自己定义。因为5月20日产生的数据文件名称是430000.20080520.FKD。我现在需要实现的是文件名的中间项能否从数据库表中取到。430000.20080519.FKD可以用文本文件打开,但不是文本文件。
      问题2:430000.20080519.FKD各字段之间是用都号分隔,我用你的方法试过了,不知道是不是方法不对,我这边返回的结果就是将引号替换成逗号,所以所有字符型数据中间出现了多个逗号。
      谢谢帮忙解答!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved