ASP常见问题及解答(10)
发表于:2007-06-30来源:作者:点击数:
标签:
1.关于table折行: table style=TABLE-LAYOUT: fixed width=200 border=0 cellspacing=0 cellpadding=7 bgcolor=#f7f7f7 tr td style=LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word dffadfdaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsfdffadfdasfdffa
1.关于<table>折行:
<table style="TABLE-LAYOUT: fixed" width="200" border="0" cellspacing="0" cellpadding="7" bgcolor="#f7f7f7">
<tr>
<td style="LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word">
dffadfdaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasf
</font></td>
</tr>
</table>
重点是"WORD-WRAP: break-word"把它去掉再看看就知道了.
2.批量录入在
数据库的应用中比较广泛的,关于批量录入的方法也有好多种。
下面我就结合我实际中的应用,谈一下儿我是怎么实现的。
主要用到的是form的集合的概念,通过循环取的所有的集合内数据。
考虑到大家看着方便,我把它集成到了一个页面。
下面是具体的代码:
batchInput.asp
<%
‘’#####################################
‘’File Function:批量录入数据
‘’Author:Myhon
‘’Date:2003-8-19
‘’#####################################
‘’向数据库写入数据
SUB writeData()
dim recCnt,i
dim fieldName1,fieldName2,fieldName3
dim conn
dim
sqlStr,connStr
connStr="Provider=
SQLOLEDB.1;Initial Catalog=myDatabase;Data Source=myhon;User Id=sa;PASSWORD="
set conn=Server.CreateObject("ADODB.Connection")
conn.open connStr ‘’建立数据库连接
recCnt=request.form("stu_num").count ‘’取得共有多少条记录
‘’批量录入数据
for i=1 to recCnt
fieldName1=trim(request.form("fieldName1")(i))
fieldName2=trim(request.form("fieldName2")(i))
fieldName3=trim(request.form("fieldName3")(i))
sqlStr="insert into myTable(fieldName1,fieldName2,fieldName3) values(‘’"
sqlStr=sqlStr & fieldName1 & "‘’,‘’"
sqlStr=sqlStr & fieldName2 & "‘’,‘’"
sqlStr=sqlStr & fieldName3 & "‘’)"
‘’response.write sqlStr
conn.execute(sqlStr)
next
END SUB
‘’显示成批录入的界面
SUB InputData()
dim recCnt,i
%>
<form name="bathInputData" action="" method="post">
<%
recCnt=cint(request.form("recCnt"))
for i=1 to recCnt
%>
<input type="text" name="fieldName1">
<input type="text" name="fieldName2">
<input type="text" name="fieldName3">
<%
next
%>
<br/>
<input type="submit" name="action" value="提交">
</form>
<%
END SUB
‘’指定要批量录入多少条记录
SUB assignHowMuch()
%>
<!------指定要录入多少条记录-------------->
<form name="form1" action="" method="post">
您要录入的记录的条数:<input type="text" name="recCnt">
<input type="submit" name="action" value="下一步>>">
</form>
<%
END SUB
if request.form("action")="下一步>>" then
Call InputData() ‘’显示成批录入界面
elseif request.form("action")="提交" then Call writeData() ‘’向数据库批量写入数据
else
Call assignHowMuch() ‘’显示指定录入多少条记录的界面
end if
%>
3.以动感下载系统为例:
打开文件 SoftDown.Asp 在:
if request.QueryString("ID")="" then
response.write "不能连接或者没有指定下载软件"
response.end
end if
的上面或者是下面加上下列代码
dim strReferer,domain,splDomain,isHttp
isHttp=false
‘’本站下载系统网址列表,不要带上http://
domain="sron.net,61.156.14.223,61.156.14.227"
splDomain=split(domain,",")
strReferer=Request.ServerVariables("HTTP_REFERER")
for iii = 0 to ubound(splDomain)
if instr(strReferer,trim(splDomain(iii)))>0 then isHttp=True
next
if isnull(strReferer) or isHttp=false then
Response.Write "下载链接来自其他网站,这是不允许的,<a href=""./"">请进入本站页面后再进行下载。</a>"
CloseDatabase
response.end
end if
本站下载系统网址列表 就是访问你下载频道网址里的域名,比如你的下载频道可以用多个网址来访问,所以这里用逗号隔开.
4.无法写入cookie的常见问题
1.确定你的response.cookie代码在第一个<html>之前
2.设置cookies的截止日期response.cookie("cookiename").expires = expiresdate;
设置cookie的请求指定路径:
就是说你的cookie写入后,指定路径中的页面才有权得到这个cookie
例如:指定路径response.cookie("cookiename").path = "http://www.domain.com/path"
那么只有path目录中的页面才能得到request.cookie("cookiename")
5.vbscript的错误捕捉:
on error resume next ‘’打开错误捕捉
...
if err.number<>0 then ‘’err是vbs内置的对象,类似于try catch的exception
err.clear ‘’错误被处理了就要及时把错误标记清空
‘’输出自己的出错信息,或用err.description显示系统出错信息
end if
on error goto 0 ‘’关闭错误捕捉。
6.ServerVariables集合用于得到系统的环境变量用以下程序可以讲ServerVariables集合的所有内容名称都显示出来
<html>
<head></head>
<body>
<% for each item in request.servervariables
response.write("<p><b>"&item&"</b>:")
response.write(request.serverVariables(item))
next
%>
</body>
</html>
具体的系统环境变量如下:
Auth_Type 当用户访问一个被保护的脚本时,用于判断是否是一个有效用户
Content_Length 客户端所提交的正文的长度
Content_Type 提交的正文数据类型
Gateway_Interface
服务器所使用的CGI修订版本
Login_User 用户是否以Windows NT帐户登陆
Path_Info 客户端路径信息
Query_String 在一个HTTP请求的查询信息
Remote_Addr 发送请求的远程主机的ip地址,利用此地址可以知道访问这的来源
Remote_Host 发送请求的远程主机名,如果远端服务器不包含该信息,则返回空字符串
Request_Method 数据请求的方法
Script_Map url的基本部分
Script_Name 执行脚本的虚拟路径
Server_Name 该服务器的名称DNS的别名,IP地址及其制定的url路径
Server_Port 数据请求所使用的端口号
Server_Software 服务器端运行的软件名称及版本号
Server_Protocol 要求信息的协议及修订版本
URL 系统的URL路径
HTTP_REFERER 当通过链接到大当前页面时,HTTP_REFERER header 保存这个用户的来源
8.HTML文件标记
<html>
<head>
<!-->
<title>
<body>
文字排版标记
<br/>
<nobr>
<p>
<pre> 原始文字样式
<center>
<blockquote> 向内缩排
<h> 标题
<strong>,<b> 粗体
<em>,<i>,<cite> 斜体
<U> 底线
<strike> 删除线
<blink> 文字闪烁
<big> 大型字体
<small> 小型字体
<sup> 文字上标
<SUB> 文字下标
<basefont> 默认字体设置
<font> 更改字体设置
菜单标记
<menu> 选项菜单
<dir> 目录菜单
<lh> 菜单格式(一)
<ul> 菜单格式(二)
<dl>,<dt>,<dd> 说明式菜单
<ol>,<li> 标题菜单
直线与表格标记
<hr>
<table>
<tr>
<td>
<th>
<caption> 表格标题
超链接标记
<a> 锚
图形标记
<IMG> 插入图形
框架标记
<FRAME> 定义框架内容
<NOFRAME> 不支持框架声明
表单标记
<FORM>
<INPUT>
<TEXTAREA>
<SELECT>
<OPTION>
SCRIPT
<script>
VBSCRIPT标记索引
基本运算
+ 数字加法及字符串连接
- 数字减法
* 数字乘法
/ 数字除法
Mod 求余数
\ 求商数
& 字符串连接
^ 次方
= 相等
<> 不相等
>= 大于或等于
> 大于
<= 小于或等于
< 小于
Not 非
And 且
Or 或
Xor 异或
循环及决策
if ....then 若...则...
if ...then...else 若...则...非
else if... 非若
select case... 群组选择条件
end select
for ... next 计数循环
while...wend 条件循环(一)
do while...loop 条件循环(二)
do...loop while 条件循环(三)
do until...loop 条件循环(四)
do...loop until 条件循环(五)
数学函数
Abs 绝对值
Sgn 正负号
Hex 转换成十六进制
Oct 转换成八进制
Sqr 平方根
Int 取整数
Fix 取整数
Round 取整数
Log 以e为底的对数
Sin 正弦函数
Cos 余弦函数
Tan 正切函数
字符串处理函数
Len 字符串长度
Mid 取部分字符串
Left 从字符串开头取部分字符串
Right 从字符串结尾取部分字符串
Lcase 转换成小写
Ucase 转换成大写
Trim 清除字符串开头及结尾的空格符
Ltrim 清除字符串开头空格符
Rtrim 清除字符串结尾空格符
Replace 替换字符串部分字符
Instr 判断是否包含于另一个字符串(从起始搜寻)
InstrRev 判断是否包含于另一个字符串(从结尾搜寻)
Space 任意字符数的空格符
String 任意字符数的任一字符
StrReverse 反转字符串
Split 以某字符分割字符串
数据类型转换函数
Cint 转换成整形
Cstr 转换成字符串
Clng 转换成常整数
Cbool 转换成布尔函数
Cdate 转换成日期函数
CSng 转换成单精度
CDbl 转换成双精度
日期时间函数
Date 现在日期
Time 现在时间
NOw 现在日期时间
DateAdd 增加日期
DateDiff 两日期差
DateSerial 日期设定
DateValue 日期设定
Year 现在年份
Month 现在月份
Day 现在天
Hour 现在时刻
Minute 现在分钟
Second 现在秒钟
Timer 午夜距现在秒数
TimeSerial 时间设定
TimeValue 时间所属部分
WeekDay 星期名称
MonthName 月份名称
其它函数
Array 产生数组
Asc 字符ASCII码
Chr ASCII码字符
Filter 过滤数组
InputBox 输入窗口
Join 合并数组中的元素
MsgBox 信息窗口
Lbound 数组下界
Ubound 数组上界
指令
Const 设定常数
Dim 定义变量或者数组
Erase 清除数组
ReDim 重新声明数组
Randomize 起始随机数
Rnd 取得随机数
ASP对象
Session对象
IsEmpty
测试Session变量是否存在
TimeOut 设定Session变量生存周期
Abandon 强制清除Session变量
Application对象
IsEmpty 测试Application变量是否存在
Lock 锁定Application变量
Unlock 解除Lock指令的锁定
Cookies对象
Expires 设定Cookies变量的生存周期
Connection对象
Open 打开与数据库的连接
Execute 打开Recordset对象
Close 关闭Connection对象
Recordset对象
movefirst 将记录指针移至第一条
movelast 将记录指针移至最后一条
movenext 将记录指针移至下一条
moveprevious 将记录指针移至上一条
bof 测试是否为recordset的起始
eof 测试是否为recordset的结束
open 打开Recoreset对象
close 关闭recordset对象
fields 读取数据的子对象
fileds.count 字段个数
pagesize 每页记录条数
absolutepage 设定为某页
pagecount 总页数
Absoluteposition 直接跳至某条记录
9.没什么好共享的,但太感动了,把做树型菜单的js函数贴出来,
<SCRIPT language="
JavaScript">
var lastObj
function expandIt(obj)
{
if(lastObj != null)
{
if(obj == lastObj)
{
if(obj.style.display == "none")
{
obj.style.display = "";
}
else
{
obj.style.display = "none"
}
}
else
{
lastObj.style.display = "none";
obj.style.display = "";
}
}
else
{
obj.style.display = "";
}
lastObj = obj
}
</SCRIPT>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
dim id
id = request("id")
dim strsql,rs
strsql="select * from p_type where slanguage=1 and typelevel=1 order by typename"
set rs=fgetrslist(strsql)
do while not rs.eof
%>
<tr>
<td height="25" class="LEFTLINKS"><img width="30" height="0" align="absmiddle" /><b><%if rs("isleaf")=0 then%><a href="#" onClick="
javascript:expandIt(kb<%=rs("id")%>);return false"><%else%><a href="<%=request.ServerVariables("SCRIPT_NAME")%>?idtree=<%=rs("idtree")%>" ><%end if%><%=server.HTMLEncode(right((rs("typename")&""),len(rs("typename")&"")-2))%></a></b></td>
</tr>
<%
IF clng(id)=clng(rs("id")) then
%>
<tr id="kb<%=rs("id")%>">
<%
else
%>
<tr id="kb<%=rs("id")%>" style="display:none;">
<%
end if
%>
<td>
<table>
<%
dim rs1
strsql="select * from p_type where parentid="&rs("id")&" and slanguage=1 order by typename"
set rs1=fgetrslist(strsql)
do while not rs1.eof
%>
<tr><td height="20" class="LEFTLINKS">
<img width="40" height="0" align="absmiddle" /><a href="<%=request.ServerVariables("SCRIPT_NAME")%>?idtree=<%=rs1("idtree")%>&id=<%=rs("id")%>" ><%=server.HTMLEncode(right((rs1("typename")&""),len(rs1("typename")&"")-2))%></a></td></tr>
<%
rs1.movenext
loop
rs1.close
set rs1=nothing
%>
</table>
</td>
</tr>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>
</table>
10.计算网页文本的汉字字数,去掉了表格以外的所有标识。
Function GetLength(strChinese1)
Dim strWord, ascWord, lenTotal
strChinese1 = Trim(strChinese1)
If strChinese1 = "" Or Vartype(strChinese1) = vbNull Then
GetLength = 0
Exit Function
End If
lenTotal = 0
For GetLengthi=1 to Len(strChinese1)
strWord = Mid(strChinese1, GetLengthi, 1)
ascWord = Asc(strWord)
If ascWord < 0 or ascWord > 127 then
lenTotal = lenTotal + 1
Elseif ascWord = 63 And strWord <> "?" then
lenTotal = lenTotal + 1
Elseif ascWord = 44 And strWord <> "," then
lenTotal = lenTotal + 1
Elseif ascWord = 33 And strWord <> "!" then
lenTotal = lenTotal + 1
Else
lenTotal = lenTotal
End If
Next
GetLength = lenTotal
End Function
11.<table width="95%" cellspacing="1" cellpadding="5" align=center bgcolor=999999>
<tr bgcolor=#ff
clearcase/" target="_blank" >cc00><td colspan="2" height=25><b>服务器有关的变量</b></td></tr>
<tr bgcolor=#efefef><td valign=top>显示客户发出的所有HTTP标题</td><td><%=request.ServerVariables("All_Http")%></td></tr>
<tr bgcolor=#efefef><td valign=top>检取ISAPIDLL的metabase路径</td><td><%=request.ServerVariables("APPL_MD_PATH")%></td></tr>
<tr bgcolor=#efefef><td valign=top>显示站点物理路径</td><td><%=request.ServerVariables("APPL_PHYSICAL_PATH")%></td></tr>
<tr bgcolor=#efefef><td valign=top>路径信息</td><td><%=request.ServerVariables("PATH_INFO")%></td></tr>
<tr bgcolor=#efefef><td valign=top>显示请求机器IP地址</td><td><%=request.ServerVariables("REMOTE_ADDR")%></td></tr>
<tr bgcolor=#efefef><td valign=top>服务器IP地址</td><td><%=Request.ServerVariables("LOCAL_ADDR")%></td></tr>
<tr bgcolor=#efefef><td valign=top>显示执行SCRIPT的虚拟路径</td><td><%=request.ServerVariables("SCRIPT_NAME")%></td></tr>
<tr bgcolor=#efefef><td valign=top>返回服务器的主机名,DNS别名,或IP地址</td><td><%=request.ServerVariables("SERVER_NAME")%></td></tr>
<tr bgcolor=#efefef><td valign=top>返回服务器处理请求的端口</td><td><%=request.ServerVariables("SERVER_PORT")%></td></tr>
<tr bgcolor=#efefef><td valign=top>协议的名称和版本</td><td><%=request.ServerVariables("SERVER_PROTOCOL")%></td></tr>
<tr bgcolor=#efefef><td valign=top>服务器的名称和版本</td><td><%=request.ServerVariables("SERVER_SOFTWARE")%></td></tr>
<tr bgcolor=#efefef><td valign=top>服务器操作系统</td><td><%=Request.ServerVariables("OS")%></td></tr>
<tr bgcolor=#efefef><td valign=top>脚本超时时间</td><td><%=Server.ScriptTimeout%> 秒</td></tr>
<tr bgcolor=#efefef><td valign=top>服务器CPU数量</td><td><%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 个</td></tr>
<tr bgcolor=#efefef><td valign=top width=30%>服务器解译引擎</td><td><%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %></td></tr>
</table>
12.10进制表示,希望actor2222 (优悠) 能看到
MicrosoftVBscript运行时错误列表(10进制表示)
error # 5 无效的过程调用或参数
error # 5 无效的过程调用或参数
error # 6 溢出
error # 7 内存不够
error # 9 下标越界
error # 10 该数组为定长的或临时被锁定
error # 11 被零除
error # 13 类型不匹配
error # 14 字符串空间不够
error # 17 不能执行所需的操作
error # 28 堆栈溢出
error # 35 未定义过程或函数
error # 48 加载 DLL 时出错
error # 51 内部错误
error # 52 错误的文件名或号码
error # 53 文件未找到
error # 54 错误的文件模式
error # 55 文件已经打开
error # 57 设备 I/O 错误
error # 58 文件已存在
error # 61 磁盘已满
error # 62 输入超出了文件尾
error # 67 文件过多
error # 68 设备不可用
error # 70 没有权限
error # 71 磁盘没有准备好
error # 74 重命名时不能带有其他驱动器符号
error # 75 路径/文件访问错误
error # 76 路径未找到
error # 91 对象变量未设置
error # 92 For 循环未初始化
error # 94 无效使用 Null
error # 322 不能创建必要的临时文件
error # 424 缺少对象
error # 429 ActiveX 部件不能创建对象
error # 430 类不支持 Automation 操作
error # 432 Automation 操作中文件名或类名未找到
error # 438 对象不支持此属性或方法
error # 440 Automation 操作错误
error # 445 对象不支持此操作
error # 446 对象不支持已命名参数
error # 447 对象不支持当前区域设置选项
error # 448 未找到已命名参数
error # 449 参数是必选项
error # 450 错误的参数个数或无效的参数属性值
error # 451 对象不是一个集合
error # 453 未找到指定的 DLL 函数
error # 455 代码资源锁定错误
error # 457 此键已与该集合的一个元素关联
error # 458 变量使用了一个 VBScript 中不支持的 Automation 类型
error # 462 远程服务器不存在或不可用
error # 481 无效图片
error # 500 变量未定义
error # 501 非法赋值
error # 502 对象不能
安全用 Script 编程
error # 503 对象不能安全初始化
error # 504 对象不能安全创建
error # 505 无效的或无资格的引用
error # 506 类没有被定义
error # 507 出现一个意外错误
error # 1001 内存不够
error # 1002 语法错误
error # 1003 缺少 ‘’:‘’
error # 1005 缺少 ‘’(‘’
error # 1006 缺少 ‘’)‘’
error # 1007 缺少 ‘’]‘’
error # 1010 缺少标识符
error # 1011 缺少 ‘’=‘’
error # 1012 缺少 ‘’If‘’
error # 1013 缺少 ‘’To‘’
error # 1014 缺少 ‘’End‘’
error # 1015 缺少 ‘’Function‘’
error # 1016 缺少 ‘’Sub‘’
error # 1017 缺少 ‘’Then‘’
error # 1018 缺少 ‘’Wend‘’
error # 1019 缺少 ‘’Loop‘’
error # 1020 缺少 ‘’Next‘’
error # 1021 缺少 ‘’Case‘’
error # 1022 缺少 ‘’Select‘’
error # 1023 缺少表达式
error # 1024 缺少语句
error # 1025 语句未结束
error # 1026 缺少整型常数
error # 1027 缺少 ‘’While‘’ 或 ‘’Until‘’
error # 1028 缺少 ‘’While‘’ 和 ‘’Until‘’或语句未结束
error # 1029 缺少 ‘’With‘’
error # 1030 标识符过长
error # 1031 无效数字
error # 1032 无效字符
error # 1033 未结束的字符串常量
error # 1034 注释未结束
error # 1037 无效使用 ‘’Me‘’ 关键字
error # 1038 ‘’loop‘’ 语句缺少 ‘’do‘’
error # 1039 无效的 ‘’exit‘’ 语句
error # 1040 循环控制变量 ‘’for‘’ 无效
error # 1041 名称重定义
error # 1042 必须是行中的第一个语句
error # 1043 不能为 non-ByVal 参数赋值
error # 1044 调用子程序时不能使用括号
error # 1045 缺少文字常数
error # 1046 缺少 ‘’In‘’
error # 1047 缺少 ‘’Class‘’
error # 1048 必须在一个类的内部定义
error # 1049 在属性声明中缺少 Let , Set 或 Get
error # 1050 缺少 ‘’Property‘’
error # 1051 在所有属性的规范中,变量的数目必须一致
error # 1052 在一个类中不允许有多个缺省的属性/方法
error # 1053 类的初始化或终止程序没有变量
error # 1054 属性的 set 或 let 必须至少有一个变量
error # 1055 错误的 ‘’Next‘’
error # 1056 ‘’Default‘’ 只能在 ‘’Property‘’ , ‘’Function‘’ 或 ‘’Sub‘’ 中指定
error # 1057 指定 ‘’Default‘’ 时必须同时指定 ‘’Public‘’
error # 1058 只能在 Property Get 中指定 ‘’Default‘’
error # 4096 Microsoft VBScript 编译器错误
error # 4097 Microsoft VBScript 运行时错误
error # 5016 缺少正则表达式对象
error # 5017 正则表达式语法错误
error # 5018 错误的数量词
error # 5019 正则表达式中缺少 ‘’]‘’
error # 5020 正则表达式中缺少 ‘’)‘’
error # 5021 字符集越界
13.利用ASP获得图象的实际尺寸的示例
<!--#include virtual="/learn/test/lib_graphicdetect.asp"-->
<html><head>
<TITLE>dbtable.asp</TITLE>
</head>
<body bgcolor="#FFFFFF">
<%
graphic="images/learnaspiconmain.gif"
HW = ReadImg(graphic)
Response.Write graphic & " Dimensions: " & HW(0) & "x" & HW(1)
& "<br/>"
response.write "<img src=""/" & graphic & """"
response.write height=""" & HW(0) & """
response.write width=""" & HW(0) & "">"
%>
</body></html>
The library that is included is:
<%
Dim HW
Function AscAt(s, n)
AscAt = Asc(Mid(s, n, 1))
End Function
Function HexAt(s, n)
HexAt = Hex(AscAt(s, n))
End Function
Function isJPG(fichero)
If inStr(uCase(fichero), ".JPG") <> 0 Then
isJPG = true
Else
isJPG = false
End If
End Function
Function isPNG(fichero)
If inStr(uCase(fichero), ".PNG") <> 0 Then
isPNG = true
Else
isPNG = false
End If
End Function
Function isGIF(fichero)
If inStr(uCase(fichero), ".GIF") <> 0 Then
isGIF = true
Else
isGIF = false
End If
End Function
Function isBMP(fichero)
If inStr(uCase(fichero), ".BMP") <> 0 Then
isBMP = true
Else
isBMP = false
End If
End Function
Function isWMF(fichero)
If inStr(uCase(fichero), ".WMF") <> 0 Then
isWMF = true
Else
isWMF = false
End If
End Function
Function isWebImg(f)
If isGIF(f) Or isJPG(f) Or isPNG(f) Or isBMP(f) Or isWMF(f)
Then
isWebImg = true
Else
isWebImg = true
End If
End Function
Function ReadImg(fichero)
If isGIF(fichero) Then
ReadImg = ReadGIF(fichero)
Else
If isJPG(fichero) Then
ReadImg = ReadJPG(fichero)
Else
If isPNG(fichero) Then
ReadImg = ReadPNG(fichero)
Else
If isBMP(fichero) Then
ReadImg = ReadPNG(fichero)
Else
If isWMF(fichero) Then
ReadImg = ReadWMF(fichero)
Else
ReadImg = Array(0,0)
End If
End If
End If
End If
End If
End Function
Function ReadJPG(fichero)
Dim fso, ts, s, HW, nbytes
HW = Array("","")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
s = Right(ts.Read(167), 4)
HW(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
HW(1) = HexToDec(HexAt(s,1) & HexAt(s,2))
ts.Close
ReadJPG = HW
End Function
Function ReadPNG(fichero)
Dim fso, ts, s, HW, nbytes
HW = Array("","")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
s = Right(ts.Read(24), 8)
HW(0) = HexToDec(HexAt(s,3) & HexAt(s,4))
HW(1) = HexToDec(HexAt(s,7) & HexAt(s,8))
ts.Close
ReadPNG = HW
End Function
Function ReadGIF(fichero)
Dim fso, ts, s, HW, nbytes
HW = Array("","")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
s = Right(ts.Read(10), 4)
HW(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
HW(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
ts.Close
ReadGIF = HW
End Function
Function ReadWMF(fichero)
Dim fso, ts, s, HW, nbytes
HW = Array("","")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
s = Right(ts.Read(14), 4)
HW(0) = HexToDec(HexAt(s,2) & HexAt(s,1))
HW(1) = HexToDec(HexAt(s,4) & HexAt(s,3))
ts.Close
ReadWMF = HW
End Function
Function ReadBMP(fichero)
Dim fso, ts, s, HW, nbytes
HW = Array("","")
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Server.MapPath("/" & fichero), 1)
s = Right(ts.Read(24), 8)
HW(0) = HexToDec(HexAt(s,4) & HexAt(s,3))
HW(1) = HexToDec(HexAt(s,8) & HexAt(s,7))
ts.Close
ReadBMP = HW
End Function
Function isDigit(c)
If inStr("0123456789", c) <> 0 Then
isDigit = true
Else
isDigit = false
End If
End Function
Function isHex(c)
If inStr("0123456789ABCDEFabcdef", c) <> 0 Then
isHex = true
Else
ishex = false
End If
End Function
Function HexToDec(cadhex)
Dim n, i, ch, decimal
decimal = 0
n = Len(cadhex)
For i=1 To n
ch = Mid(cadhex, i, 1)
If isHex(ch) Then
decimal = decimal * 16
If isDigit(c) Then
decimal = decimal + ch
Else
decimal = decimal + Asc(uCase(ch)) - Asc("A")
End If
Else
HexToDec = -1
End If
Next
HexToDec = decimal
End Function
%>
原文转自:http://www.ltesting.net