| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1171 人关注过本帖
标题:关于TXT文档内容到DBF表的代码求助
取消只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
结帖率:96.05%
收藏
已结贴  问题点数:100 回复次数:7 
关于TXT文档内容到DBF表的代码求助
让EXCEL表数据  进入 到 DBF表的方法是通过创建对象来实现
如;myexcel=CreateObject('excel.application')

观论坛,解决TXT文档到DBF的方法有二种
     
    1、使用FileToStr函数。如:lcFile = FILETOSTR("课务分工2025.TXT") 再通过数组 进入DBF
    2、使用Append From导入。如:APPEND FROM 课务分工2025.txt TYPE DELIMITED WITH TAB


现在我有一个问题,因为公司对电脑装了加密,被保存过的TXT文档,使用filetostr()导入会是一片乱码,所以,想用创建对象打开TXT文档的方法,打开后再读取到DBF中,这个对TXT处理的代码该如何写?烦请高手赐教!

我的问题的简单描述:VFP打开TXT的代码如何写?对打开的文本内容存到变量中,又是如何写代码?

只求每天有一丁点儿的进步就可以了
4 天前 11:02
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
以下是引用kangss在2025-4-27 13:10:29的发言:

VFP打开TXT的代码如何写?
modi comm c:\aaaa.txt


试了,打开是一片乱码

用记事本打开才是正常的

只求每天有一丁点儿的进步就可以了
4 天前 13:28
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
对WORD加密,通过创建对象,打开WORD再读取,就正常,所以,想到是否也可用创建一个能打开记事本的对象来处理,不知是否可行


只求每天有一丁点儿的进步就可以了
4 天前 15:15
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
首先感谢各位的参与,谢谢!
加密是第三方提供的,所以,根本不知道加密与解密的原理,看到现象是:
一个办公文档(如EXCEL文档、WORD文档、TXT文档)在电脑上操作与不装加密软件的电脑上操作是一样的,但拷贝到家中的电脑上打开就是乱码一片。
从论坛上下载下来一个TXT文档(如:“123.TXT”),只要不去作打开保存的操作,是不会被加密的。那么,

cfile=filetostr("123.txt")
  
? cfile 观察,在VF窗口看到的内容是正常的
如果 打开保存操作过后,则文档就被加密了,再
cfile=filetostr("123.txt")  
? cfile 观察,在VF窗口看的内容是一片乱码了!

也就是说,保存过后的文档,就不能用 文件到字符 的函数来解决了!

于是,想到一个,像 EXCEL TO DBF 那样的方法:即VF代码创建一个EXCEL对象,用对象打开EXCEL表,再读取EXCEL到DBF那样。
提问就是想要这样一个方法的代码,即 用VF代码创建一个X对象,用这个对象能打开“123.TXT”文件,再全选 - 复制 - 粘贴 到 变量或数组后,最后进入到 DBF 表中。

烦请高手提供帮助,我好学到一种技术!谢谢!

只求每天有一丁点儿的进步就可以了
3 天前 08:31
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
以下是引用厨师王德榜在2025-4-28 11:04:05的发言:

这样提问解决不了问题,我出个主意,你在这里提供两份txt文件。
文件1.txt,未加密过的,  内容为:
abc...z(回车)
123...9(回车)
ABC...Z(回车)
文件2. (文件1在你公司电脑上保存后的样子)
两份文件都传上来,说不定有高手可以破。


加密TF对照.rar (631 Bytes)

二份文件制作好了

供高手测试

只求每天有一丁点儿的进步就可以了
3 天前 12:43
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
我需要的,不是破解,是VF创建对象、打开、读取的方法。

不过能破解,也是一个好玩的东东!

只求每天有一丁点儿的进步就可以了
3 天前 12:46
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
以下是引用厨师王德榜在2025-4-28 14:23:17的发言:

猜测你要的是这个:
* 打开记事本并加载文件(异步模式,不等待)
lcFile = "C:\Intel\调用clssqlite33示例.txt"  && 要打开的文件全路径名称
winTitle = JUSTSTEM(lcFile)  + " - 记事本"   && 推算出的窗口标题
* 创建 WScript.Shell 对象
loShell = CREATEOBJECT("WScript.Shell")
loShell.Run('notepad.exe "' + lcFile + '"', 1, .F.)  && WScript.Shell 对象打开记事本

* 等待记事本窗口启动(关键延迟)
= INKEY(1)  && 延迟1秒,确保窗口加载完成

* 激活记事本窗口(通过窗口标题匹配)
llActivated = loShell.AppActivate(winTitle)
IF NOT llActivated
    MESSAGEBOX("无法激活记事本窗口!")
    RETURN
ENDIF

* 通过发送(Ctrl+A)和(Ctrl+C),取得记事本内容到剪贴板
loShell.SendKeys("^a")  && Ctrl+A
= INKEY(0.2)           && 等待200毫秒确保全选完成
loShell.SendKeys("^c")  && Ctrl+C
= INKEY(0.5)           && 等待500毫秒确保复制完成

* 关闭记事本
loShell.SendKeys("%{F4}")  && Alt+F4 关闭窗口
= INKEY(0.5)

* 释放对象
RELEASE loShell

* 验证剪贴板内容
IF !EMPTY(_CLIPTEXT)
    IF MESSAGEBOX("内容已复制到剪贴板,是否输出到屏?" ,4,"读取记事本成功。") = 6
        CLEAR
        nn = ALINES(arrtxt, _CLIPTEXT, 2, CHR(13))
        FOR ir = 1 TO nn
            * 记事本内容输出到屏,也可改为append到一个事先准备好的表中
            ? STR(ir) + "|" + arrtxt[ir]
        ENDFOR  
    ENDIF
ELSE
    MESSAGEBOX("复制失败!")
ENDIF

正是需要的,非常感谢!

只求每天有一丁点儿的进步就可以了
3 天前 14:46
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2298
专家分:4114
注 册:2007-4-27
收藏
得分:0 
以下是引用csyx在2025-4-28 09:57:03的发言:

右击加密后的 txt,打开方式 > 写字板,如果写字板能正常显示,也许就能用 RichText 对象来读写
只能说也许,说不定加密方式是采用 hook 进程名而不是控件的 ProgId



不好意思啊!结贴后再看发现没给到您分数,抱歉,真的不好意思啊!

只求每天有一丁点儿的进步就可以了
3 天前 15:11
快速回复:关于TXT文档内容到DBF表的代码求助
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016795 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved