主题:  如何判断文件格式

望枫

职务:普通成员
等级:1
金币:1.0
发贴:155
#12002/8/5 8:35:08
aw中如何动态的判断某文件夹下文件的格式,并使之的值返回到一组字符串中?



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#22002/8/5 9:19:20
所有这些用AW的内部函数就可以实现拉。。:D

--取得文件列表
FileString:=Catalog(FileLocation,"F")
--取得文件个数
FileNumber:=LineCount(FileString,Return)
--初始化文件后缀名记录字符串
FileFixs:=""

--取得文件后缀名
repeat with i:=1 to FileNumber
FileNames:=GetLine(FileString,i)
lastindex:=CharCount(FileNames)
FileFix:=SubStr(FileNames,lastindex-2, lastindex)
FileFixs:=FileFixs^FileFix^Return
end repeat

范例下载:
 判断文件后缀名8K

编辑历史:[这消息被Rock编辑过(编辑时间2002-08-05 09:27:25)]


望枫

职务:普通成员
等级:1
金币:1.0
发贴:155
#32002/8/5 9:43:31
帅呆了!!!!^_^



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#42002/8/5 9:45:04
好。。拉多点人来提高这里的人气吧。。哈哈。。作为回报



望枫

职务:普通成员
等级:1
金币:1.0
发贴:155
#52002/8/5 10:09:54
那当然,我已经向我得同事和同学推荐你这个论坛了,我也从中学到了不少东西。
你上面那个程序,如果要进一步把相同的后缀,在最后就显示一个,不要全部显示,怎么办呢?(相当于判断文件夹下到底有几种格式的文件)

编辑历史:[这消息被望枫编辑过(编辑时间2002-08-05 10:18:15)]


5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#62002/8/5 10:28:02
如果后缀是4个字母呢,那不久有BUG了吗!ROCK你觉得这样可以吗?
用str=catalog(filelocation,"f")取得指定文件夹下文件的列表,存储在自定义变量str中!
--从第一行开始循环直到最后一行
repeat with n=1 to linecount(str)
--取得每个文件的后缀,存储到自定义变量houzui中
houzui=substr(getline(str,n),find(".",getline(str,n))+1,charcount(getline(str,n)))
--根据后缀判断文件类型
  houzui=houzui^houzui^return

编辑历史:[这消息被虚竹编辑过(编辑时间2002-08-05 10:29:56)]

真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#72002/8/5 10:28:49
完整脚本。。。避免了重复的相同后缀

--取得文件列表
FileString:=Catalog(FileLocation,"F")
--取得文件个数
FileNumber:=LineCount(FileString,Return)
--初始化文件后缀名记录字符串
FileFixs:=""
FileCRC:=0

--取得文件后缀名
repeat with i:=1 to FileNumber
FileNames:=GetLine(FileString,i)
lastindex:=CharCount(FileNames)
FileFix:=SubStr(FileNames,lastindex-2, lastindex)
FixsNumber:=LineCount(FileFixs,Return)
repeat with k:=1 to FixsNumber
FixsNames:=GetLine(FileFixs,k)
if FixsNames=FileFix then
FileCRC:=1
else
FileCRC:=0
end if
end repeat
if FileCRC=0 then
FileFixs:=FileFixs^FileFix^Return
end if
end repeat

范例下载:
 判断文件后缀名8K

编辑历史:[这消息被Rock编辑过(编辑时间2002-08-05 10:39:37)]


小平

职务:普通成员
等级:1
金币:1.0
发贴:162
#82002/8/5 10:54:13
我写的取得文件后缀的方法,前面取得文件目录内文件不写了.
repeat with i:=1 to LineCount(FileString,Return)
FileName:=GetLine(FileString,i)
FileFix[i]:=SubStr(str,RFind(".",filenames)+1,CharCount(filenames))
end repeat



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#92002/8/5 10:59:19
好,用rfind函数取代find函数,也解决了我提出的方案的问题!即如果有两个..怎么办!!好!好!后缀再多也不怕!呵呵!


真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#102002/8/5 11:03:41
标准后缀都是三个字母的呀。。呵呵
用Rfind方法好。。呵呵。。
找到最后一个匹配的.的位置,然后读后面的文件后缀。。

推荐AW5 的方法



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#112002/8/5 11:07:57
结合AW5 的思路。。最后的避免BUG的范例:
61.151.244.212/vip/rock/Example/FileFixs.zip



望枫

职务:普通成员
等级:1
金币:1.0
发贴:155
#122002/8/5 17:50:05
相同的后缀还是会重复出现?????



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#132002/8/5 20:36:14
你肯定是没有下载最新的版本
我在WIN2K的PRO和SERVER版本系统运行都正常啊



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#142002/8/5 20:36:47
的确:ROCK这段筛选后缀的语句还有问题:
后缀是都找对了!但是还是不能达到相同后缀不重复显示的效果!!
repeat with k:=1 to FixsNumber
FixsNames:=GetLine(FileFixs,k)
if FixsNames=FileFix then
FileCRC:=1
else
FileCRC:=0
end if
end repeat
if FileCRC=0 then
FileFixs:=FileFixs^FileFix^Return
end if
end repeat

我已经花了两个小时找了,还是找不出原因!!
大家快帮忙找找!!

编辑历史:[这消息被虚竹编辑过(编辑时间2002-08-05 20:48:23)]

真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#152002/8/5 20:49:38
以下是我的执行界面。。一切正常啊。。你们怎么不正常拉?


图片如下: