|
jmz573515
银牌会员
    
积分 1212
发帖 464
注册 2006-12-13
状态 离线
|
『第
16 楼』:
你给一个当天(昨天,或是今天)的水电费的内容,不说清楚怎么写啊?
难道是1.txt文件里只有下面这些内容吗?
水电费:569
合同金:658
外援费:56666
|
|
2007-2-6 02:42 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
|
2007-2-6 09:32 |
|
|
jmz573515
银牌会员
    
积分 1212
发帖 464
注册 2006-12-13
状态 离线
|
  『第
18 楼』:
用VBS写的,首先要把昨天生成的文件以日期形式命名如:2006-2-6.txt。在你输入价格之后它会生成两个文件,一个是以当天命名的文件(如:2007-2-7.txt),这里记录的是今天的金额,还有一个文件是“今天和昨天的差额.txt”,这里记录的是昨天和今天的差额。(所以“今天和昨天的差额.txt”这个文件每天都会改变,自己试一下...)
dim jintian
Set ws=CreateObject("wscript.shell")
Set fso=CreateObject("scripting.filesystemobject")
Set fle=fso.opentextfile(dateadd("d",-1,date) & ".txt")
Do While fle.atendofstream<>true
m=fle.readline
ff=replace(m,glhz(m),"")
s=s & chae(ff,glhz(m)) & vbcrlf
loop
fle.close
Set file=fso.createtextfile(date & ".txt")
file.write jintian
file.close
Set file=fso.createtextfile("今天和昨天的差额.txt")
file.write s
file.close
ws.run "notepad.exe 今天和昨天的差额.txt",,true
msgbox "请查看【" & date & ".txt】文件,看看输入是否正确。",4096+48,"操作完成"
Function chae(xm,je)
do until a=1
sdf=inputbox("请输入【" & xm & "】的金额:",xm)
if sdf="" then
wscript.quit
elseif IsNumeric(sdf)<>true then
msgbox "输入错误,请重新输入。",16+4096,"错误"
else
a=1
end if
loop
chae=xm & sdf-je
jintian=jintian & xm & sdf &vbcrlf
a=0
End Function
Function glhz(zhifu)
a=Len(zhifu)
For i=1 To a
b=Mid(zhifu,i,1)
If IsNumeric(b)=True or b="." then
glhz=glhz&Mid(zhifu,i,1)
End if
next
end Function [ Last edited by jmz573515 on 2007-2-6 at 01:04 PM ]
|
|
2007-2-7 01:09 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
19 楼』:
真的谢谢楼上的兄弟
我想用bat生成,效果差一点,也没有关系
vbs,我不懂。所以不能灵活运用,在现实的工作中
再次感谢你!!
|
|
2007-2-7 01:15 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
|
2007-2-7 01:42 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
21 楼』:
可以运行了,但是,每次输入,明明只有三项,第四项是什么呀,如果第四项不输入的话,就不能生成哪两个txt文件,可我哪里没有第四项呀?
|
|
2007-2-7 01:51 |
|
|
jmz573515
银牌会员
    
积分 1212
发帖 464
注册 2006-12-13
状态 离线
|
『第
22 楼』:
那是你昨天的文件最后有两个空行,删除一个空行就好了。
|
|
2007-2-7 01:57 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
23 楼』:
我试试
可以了
vbs,功能和界面确实强
我想学习一个vbs
就从,你的vbs学起,能指点一下吗?
[ Last edited by anqing on 2007-2-7 at 02:07 AM ]
|
|
2007-2-7 02:05 |
|
|
jmz573515
银牌会员
    
积分 1212
发帖 464
注册 2006-12-13
状态 离线
|
   『第
24 楼』:
我也是菜鸟类~:(
不过可以给你点建议,多看别人的代码,自己研究就是了。
[ Last edited by jmz573515 on 2007-2-6 at 01:10 PM ]
|
|
2007-2-7 02:07 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
25 楼』:
我想弄懂,你的这个v,然后能灵活运用它
每天的项目不一定,就只有三项,也许有天会增加,减少
我运行一下,这个v好像是取前一天的名称项目,如果第二天没有哪个项目的话,也会要求输入它的数值,只好输入0了
总知
先学会看懂这个v吧
|
|
2007-2-7 02:09 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
26 楼』:
Quote: | Originally posted by jmz573515 at 2007-2-7 02:07:
我也是菜鸟类~:(
不过可以给你点建议,多看别人的代码,自己研究就是了。
[ Last edited by jmz573515 on 2007-2-6 at 01:10 PM ] |
|
我个人表达能力不算强,但你认真地看懂了,并且用所学的知识,vbs脚本,把它写出来,这种创造力的能力,已经不简单了!
佩服
|
|
2007-2-7 02:17 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
27 楼』:
我想弄懂,你的这个v,然后能灵活运用它
每天的项目不一定,不是只有三项,也许每天会增加,减少项目!?
我运行一下你的v,这个v好像是取前一天的名称项目,如果第二天没有哪个项目的话,也会要求输入它的数值,如果不输入的话,就不能生成哪两个txt文件,这个怎么解决?
如果没有,能不能敲一个回车跳过,继续其它名称项目
还有一些细节问题没有解决?
|
|
2007-2-7 02:46 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
28 楼』:
自己顶起,因为,问题没有全部解决
|
|
2007-2-7 06:01 |
|
|
redtek
金牌会员
     
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
29 楼』:
兄把第18楼jmz573515兄代码每行都加入中文注释:)
虽没学过VBS,但兄如果全加上注释并再找一个VBS命令索引或可以查询VBS函数或语法的帮助文件,这样就可自己修改并无师自通啦:)
[ Last edited by redtek on 2007-2-7 at 10:46 AM ]
|

Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2007-2-7 23:45 |
|
|
anqing
高级用户
   
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
30 楼』:
谢谢r兄
昨天学了一下vbs
自己改一下
dim jintian
Set ws=CreateObject("wscript.shell")
Set fso=CreateObject("scripting.filesystemobject")
Set fle=fso.opentextfile(dateadd("d",-6,date) & ".txt")
Do While fle.atendofstream<>true
m=fle.readline
ff=replace(m,glhz(m),"")
s=s & chae(ff,glhz(m)) & vbcrlf
loop
fle.close
Set file=fso.createtextfile(date & ".txt")
file.write jintian
file.close
Set file=fso.createtextfile("今天和昨天的差额.txt")
file.write s
file.close
ws.run "notepad.exe 今天和昨天的差额.txt",,true
msgbox "请查看【" & date & ".txt】文件,看看输入是否正确。",4096+48,"操作完成"
Function chae(xm,je)
do until a=1
sdf=inputbox("请输入【" & xm & "】的金额:",xm)
if sdf="" then
wscript.quit
elseif IsNumeric(sdf)<>true then
msgbox "输入错误,请重新输入。",16+4096,"错误"
else
a=1
end if
loop
if sdf>0 then
chae=xm & sdf-je
end if
jintian=jintian & xm & sdf &vbcrlf
a=0
End Function
Function glhz(zhifu)
a=Len(zhifu)
For i=1 To a
b=Mid(zhifu,i,1)
If IsNumeric(b)=True then
glhz=glhz&Mid(zhifu,i,1)
End if
next
end Function
当没有项的时候,输入0,就可以了
|
|
2007-2-8 00:11 |
|