您的位置:程序门 -> vb -> 基础类



请教vb对文本文件的操作


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教vb对文本文件的操作[已结贴,结贴人:now21cn]
发表于:2007-04-15 15:40:37 楼主
本人初学vb,请教vb熟手,如何编程以下操作:

用vb创建一个文件名为“***.txt”的文本文件,粘贴剪贴板里面的数据,替换字符(比如将其中的a字符全部替换为b字符),替换完成后,保存该文本文件。

请dx们不吝赐教,在此谢过!
发表于:2007-04-15 15:55:401楼 得分:20
30分啊?   希望你言而有信!送你标准答案~


private   sub   command1_click()
dim   sstr   as   string
sstr   =   clipboard.gettext()
sstr   =   replace(sstr,   "a ",   "b ")
open   app.path   &   "\111.txt "   for   append   as   #1
print   #1,   sstr
close   #1
end   sub

发表于:2007-04-15 17:30:262楼 得分:5
引入fso:
function   fsochange(filename,target,string)
dim   fso,f
set   fso   =   server.createobject( "scripting.filesystemobject ")
set   f   =   fso.opentextfile(...txt文件路径)
filetempdata(变量)   =   f.readall
filetempdata(变量)=replace(filetempdata, "a ", "b ")
f.write   filetempdata
f.close
set   f=nothing
set   fso=nothing
end   function
发表于:2007-04-15 22:44:433楼 得分:0
将这段代码放在excel文件的一个宏命令里,运行到sstr     =     clipboard.gettext()语句提示出错,难道放excel宏命令就不能运行吗?
private     sub     command1_click()    
dim     sstr     as     string    
sstr     =     clipboard.gettext()    
sstr     =     replace(sstr,         "a     ",         "b     ")    
open     app.path     &         "\111.txt     "     for     append     as     #1    
print     #1,     sstr    
close     #1    
end     sub  

另外,txt文件的文件名是否可以通过一个变量赋值来命名?怎样编写?
问题解决,保证送分!
发表于:2007-04-16 15:02:264楼 得分:0
excel里我太清楚,没研究过宏
vb里这样写是正确的

private   sub   command1_click()
dim   sstr       as   string
sstr   =   clipboard.gettext()
sstr   =   replace(sstr,   "a     ",   "b     ")
open   app.path   &   "\ "   &   text1.text   for   append   as   #1
print   #1,   sstr
close   #1
end   sub

private   sub   form_load()
    text1.text   =   "文件名,例111.txt   或bbb.html "
end   sub
发表于:2007-04-16 15:53:395楼 得分:5
public   mydata   as   dataobject
public   tstr     as   string
sub   myclipboard()                                         '取得剪切板数据
'dim   tstr$
        set   mydata   =   new   dataobject
        mydata.getfromclipboard
        if   mydata.gettext   =   " "   then
                debug.print   "no "
        else
        tstr   =   mydata.gettext
                debug.print   tstr
        end   if
end   sub

private   sub   workbook_open()                               '写文件
        open   thisworkbook.path   &   "\aa.txt "   for   output   as   #1
                write   #1,   tstr
        close   #1
end   sub
发表于:2007-04-16 16:30:216楼 得分:0
private     sub     command1_click()    
dim     sstr     as     string    
sstr     =     clipboard.gettext()    
sstr     =     replace(sstr,         "a     ",         "b     ")    
open     app.path     &         "\   "   &   filename   &   ".txt     "     for     append     as     #1    
print     #1,     sstr    
close     #1    
end     sub  


'dim   tstr$
        set   mydata   =   new   dataobject
        mydata.getfromclipboard
        if   mydata.gettext   =   " "   then
                debug.print   "no "
        else
        tstr   =   mydata.gettext
                debug.print   tstr
        end   if
end   sub
发表于:2007-04-16 21:52:187楼 得分:0
...................
发表于:2007-04-16 21:55:378楼 得分:0
彻底晕了,分原来这么有魅力。
发表于:2007-04-17 12:08:569楼 得分:0
谢谢oumigai()等tx的解答,现在已解决将excel工作表创建为文本文件的问题,创建后通过以下代码执行替换功能:
dim   filename   as   string
filename   =   "d:\data\ "   &   "mid "   &   fl   &   ".txt "
dim   fs,   f,   a,   s
        set   fs   =   createobject( "scripting.filesystemobject ")
        set   f   =   fs.opentextfile(filename,   1)
        a   =   f.readall
        f.close
        s   =   replace(a,   " ", " ",   ", ")                   '将带双引号的逗号(即 ", ")替换成逗号
        s   =   replace(a,   "b   ",   " ")                       '将带后空格的b字符(即b   )替换成无内容
        set   f   =   fs.opentextfile(filename,   2)
        f.writeline   s
        f.close
end   sub

执行到:s   =   replace(a,   " ", " ",   ", ")语句时提示出错,在下愚钝,不知道怎样写带双引号的逗号的表达式,请知道的tx赐教!
发表于:2007-04-17 14:08:2010楼 得分:0
dim   filename   as   string
                dim   fso   as   new   scripting.filesystemobject
                dim   f1   as   textstream

                set   f1   =   fso.opentextfile( "c:\kkk.txt ",   2,   true)         f1.write   "asdasdfasdfadsfadfasdf "
               
                f1.close
                set   fso   =   nothing
发表于:2007-04-17 14:27:1911楼 得分:0
看不明白楼上代码的意思…
发表于:2007-04-17 14:49:3512楼 得分:0
print   " " " "   &   ", "   &   " " " "
发表于:2007-04-19 10:35:5713楼 得分:0
最后用以下代码解决问题:
dim   vstr   as   string
open   "c:\data\111.txt "   for   output   as   #1
for   x   =   1   to   9999
        vstr   =   cells(1,   x)
        if   vstr   =   "b "   then
        print   #1,   "a "
        end   if
        close   #1
end   sub

谢谢以上dx帮助,为表感谢,给oumigai()dx加点分。
发表于:2007-04-19 10:39:1914楼 得分:0
给分情况:oumigai   (20)、   xiaolei1982   (5)、   rose2007   (5)


快速检索

最新资讯
热门点击