ASP常见问题及解答
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"> dffadfdaqqqqqqqqq</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="/sblog/"./"">请进入本站页面后再进行下载。</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=#ffcc00><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获得图象的实际尺寸的示例 <!--#i nclude 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="/sblog/"/" & 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 %>


0 Comments:
发表评论
Links to this post:
创建链接
<< Home