中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 19:44
16 发表于 2008-10-25 21:33 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
UID 115804
性别 男
状态 离线
初学AU3,用它给你写一个,思路跟BAT的相同。。。
if fileexists ("new.txt") then filedelete ("new.txt")
$file = Fileopen("a.txt",0)
dim $var1,$var2, $str, $num1, $num2,$enkey=@crlf,$numeric1, $numeric2

while 1
$str = FilereadLine($file)
if @error = -1 then exitloop
$str = StringSplit ($str, ",")
$num1 += 1
$numeric1 +=1
$num2 = $num1 - 1
$numeric2 = $numeric1 - 1
assign ($num1, $str)
assign ("_" & $numeric1,$str)
$s = eval ($num1)
$d = eval ("_" & $numeric1)
$a = eval ($num2)
$e = eval ("_" & $numeric2)
if $num1 > 1 then
$var1 = $s - $a
$var2 = $d - $e
filewrite ("new.txt",$var1 &","&$var2 &$enkey)
endif
wend
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
17 发表于 2008-10-26 12:46 ·  中国 江西 南昌 电信
初级用户
积分 61
发帖 22
注册 2008-10-19 17:15
UID 128768
性别 男
状态 离线
Originally posted by 3391617 at 2008-10-25 17:23:
我测试一下看看

我不是说了你记事本存在小数的问题吗,你可以直接下cmd下写
set /a a=1.2-1.1
就会出现这个提示。
由于赋予变量会将整个a.txt的值赋予他,所以必须将他们隔开。
18 发表于 2008-10-26 18:01 ·  中国 辽宁 丹东 联通
初级用户
★★
积分 116
发帖 56
注册 2007-03-07 04:53
UID 80966
性别 男
状态 离线
有办法计算小数的
我翻过帖子
看到过
QQ=3391617
19 发表于 2008-10-26 20:38 ·  中国 上海 奉贤区 电信
初级用户
积分 35
发帖 18
注册 2008-08-10 22:34
UID 123138
性别 男
状态 离线
都是三位小数的话,可用如下程序:
@echo off&setlocal EnableDelayedExpansion
cd.>b.txt 2>nul
for /f "tokens=1,2 delims=," %%a in (a.txt) do (
if defined num1 (
set num3=%%a
set num4=%%b
set num3=!num3:.=!
set num4=!num4:.=!
set /a cha1=num3-num1
call :jiance !cha1!
set cha1=!cha!
set /a cha2=num4-num2
call :jiance !cha2!
set cha2=!cha!
set "cha1=!cha1:~0,-3!.!cha1:~-3,3!"
set "cha2=!cha2:~0,-3!.!cha2:~-3,3!"
echo !cha1!,!cha2!>>b.txt
)
set num1=%%a
set num2=%%b
set num1=!num1:.=!
set num2=!num2:.=!
)
echo OK.&pause
exit

:jiance
set cha=%1
if "%cha:~0,1%"=="-" (set fuhao=-&set cha=%cha:~1%) else (set fuhao=)
if %cha% lss 10 (set cha=%fuhao%000%cha%&goto :eof)
if %cha% lss 100 (set cha=%fuhao%00%cha%&goto :eof)
if %cha% lss 1000 (set cha=%fuhao%0%cha%&goto :eof)
set cha=%fuhao%%cha%
goto :eof


[ Last edited by shqf on 2008-10-26 at 20:44 ]
20 发表于 2008-10-26 22:16 ·  中国 辽宁 丹东 联通
初级用户
★★
积分 116
发帖 56
注册 2007-03-07 04:53
UID 80966
性别 男
状态 离线
TO:19楼
测试可以!
小数整数都没有限制的版本可以做到不呢?
我先研究研究你这个,谢谢各位的帮助了!不胜感激!
QQ=3391617
21 Re 20楼 发表于 2008-10-26 22:31 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
BAT调用VBS来计算吧
论坛跳转: