社区
JavaScript
帖子详情
JS如何模拟VBS中的LenB、MidB、ChrB、AscB等字节函数
purexu
2004-09-01 05:47:36
JS要如何才能实现VBS中这些字节函数的功能呢
...全文
363
10
打赏
收藏
JS如何模拟VBS中的LenB、MidB、ChrB、AscB等字节函数
JS要如何才能实现VBS中这些字节函数的功能呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
purexu
2004-09-03
打赏
举报
回复
难道只有这种方法吗
bamboo2000
2004-09-03
打赏
举报
回复
如果要在JS中实现类似VBS字节的操作
可以用JS调用VBS的函数来实现
purexu
2004-09-03
打赏
举报
回复
但是LenB("abc")等于3来的
cuixiping
2004-09-02
打赏
举报
回复
js中使用unicode编码,对于字节数据的字符串,直接substr, substring, charAt, charCodeAt 就可以了。mjpclab讲的是对的。
mjpclab
2004-09-02
打赏
举报
回复
lenB
string.length*2
purexu
2004-09-02
打赏
举报
回复
那如果要实现LenB、MidB、ChrB、AscB的功能要如何处理呢
fason
2004-09-02
打赏
举报
回复
JS不能直接操作字节,最接近的就是用stream
purexu
2004-09-02
打赏
举报
回复
VBS中LenB("abc一二三")等于12,LenB("abc")等于3,LenB("一二三")等于6
相应的MidB("abc一二三", 12, 1)的上标可以到12,MidB("abc", 3, 1)为3,MidB("一二三", 6, 1)为6
根本就不一样
purexu
2004-09-01
打赏
举报
回复
楼上的,你弄错了,是LenB、MidB、ChrB、AscB,不是Len、Mid、Chr、Asc
mjpclab
2004-09-01
打赏
举报
回复
len: 'abcdefg'.length | str='abcde'; str.length
================
mid:
vbs: mid(str,i,length)
js: str.substr(i-1,length)
================
chr
vbs: chr(65) & chr (66) & chr(67)
js: String.fromCharCode(65,66,67...)
==================
asc
vbs: asc("A")
js: "ABCD".charCodeAt(0) //返回65
"ABCD".charCodeAt(1) //返回66
鲜花网站建设
鲜花店
无组件ASP文件上传源代码
无组件ASP文件上传源代码 记得在建立一个文件夹"updata" saveannounce_upload.asp 上传页 ------------------------------------ body {font-size:9pt;} input {font-size:9pt;} 文件上传 文件 ------------------------------------ saveannouce_upfile.asp 保存文件到服务器 ------------------------------------ 文件上传 <% dim upload,file,formName,formPath set upload=new upload_5xSoft ''建立上传对象 formPath=upload.form("filepath") ''在目录后加(/) if right(formPath,1)"/" then formPath=formPath&"/" for each formName in upload.file ''列出所有上传了的文件 set file=upload.file(formName) ''生成一个文件对象 if file.filesize<100 then response.write "请先选择你要上传的文件 [ 重新上传 ]" response.end end if if file.filesize>500*1000 then '设置上传文件大小为500K response.write "文件大小超过了限制 500K [ 重新上传 ]" response.end end if if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据 file.SaveAs Server.mappath("updata\"&file.FileName) ''保存文件 end if set file=nothing next set upload=nothing response.write "文件上传成功 [ 继续上传 ]" %> ------------------------------------ upload.inc 建立upload对象 ------------------------------------ dim upfile_5xSoft_Stream Class upload_5xSoft dim Form,File,Version Private Sub Class_Initialize dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr Version="" if Request.TotalBytes<1 then Exit Sub set Form=CreateObject("Scripting.Dictionary") set File=CreateObject("Scripting.Dictionary") set upfile_5xSoft_Stream=CreateObject("Adodb.Stream") upfile_5xSoft_Stream.mode=3 upfile_5xSoft_Stream.type=1 upfile_5xSoft_Stream.open upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes) vbEnter=Chr(13)&Chr(10) iDivLen=inString(1,vbEnter)+1 strDiv=subString(1,iDivLen) iFormStart=iDivLen iFormEnd=inString(iformStart,strDiv)-1 while iFormStart 0 and iFileNameStartiStart then mFileSize=iEnd-iStart-4 else mFileSize=0 end if set theFile=new FileInfo theFile.FileName=getFileName(mFileName) theFile.FilePath=getFilePath(mFileName) theFile.FileSize=mFileSize theFile.FileStart=iStart+4 theFile.FormName=FormName file.add mFormName,theFile else iStart=inString(iEnd+1,vbEnter&vbEnter) iEnd=inString(iStart+4,vbEnter&strDiv) if iEnd>iStart then mFormValue=subString(iStart+4,iEnd-iStart-4) else mFormValue="" end if form.Add mFormName,mFormValue end if iFormStart=iformEnd+iDivLen iFormEnd=inString(iformStart,strDiv)-1 wend End Sub Private Function subString(theStart,theLen) dim i,c,stemp upfile_5xSoft_Stream.Position=theStart-1 stemp="" for i=1 to theLen if upfile_5xSoft_Stream.EOS then Exit for c=
ascB
(upfile_5xSoft_Stream.Read(1)) If c > 127 Then if upfile_5xSoft_Stream.EOS then Exit for stemp=stemp&Chr(AscW(
ChrB
(
AscB
(upfile_5xSoft_Stream.Read(1)))&
ChrB
(c))) i=i+1 else stemp=stemp&Chr(c) End If Next subString=stemp End function Private Function inString(theStart,varStr) dim i,j,bt,theLen,str InString=0 Str=toByte(varStr) theLen=
LenB
(Str) for i=theStart to upfile_5xSoft_Stream.Size-theLen if i>upfile_5xSoft_Stream.size then exit Function upfile_5xSoft_Stream.Position=i-1 if
AscB
(upfile_5xSoft_Stream.Read(1))=
AscB
(
midB
(Str,1)) then InString=i for j=2 to theLen if upfile_5xSoft_Stream.EOS then inString=0 Exit for end if if
AscB
(upfile_5xSoft_Stream.Read(1))
AscB
(
MidB
(Str,j,1)) then InString=0 Exit For end if next if InString0 then Exit Function end if next End Function Private Sub Class_Terminate form.RemoveAll file.RemoveAll set form=nothing set file=nothing upfile_5xSoft_Stream.close set upfile_5xSoft_Stream=nothing End Sub Private function GetFilePath(FullPath) If FullPath "" Then GetFilePath = left(FullPath,InStrRev(FullPath, "\")) Else GetFilePath = "" End If End function Private function GetFileName(FullPath) If FullPath "" Then GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1) Else GetFileName = "" End If End function Private function toByte(Str) dim i,iCode,c,iLow,iHigh toByte="" For i=1 To Len(Str) c=mid(Str,i,1) iCode =Asc(c) If iCode255 Then iLow = Left(Hex(Asc(c)),2) iHigh =Right(Hex(Asc(c)),2) toByte = toByte &
chrB
("&H"&iLow) &
chrB
("&H"&iHigh) Else toByte = toByte &
chrB
(
AscB
(c)) End If Next End function End Class Class FileInfo dim FormName,FileName,FilePath,FileSize,FileStart Private Sub Class_Initialize FileName = "" FilePath = "" FileSize = 0 FileStart= 0 FormName = "" End Sub Public function SaveAs(FullPath) dim dr,ErrorChar,i SaveAs=1 if trim(fullpath)="" or FileSize=0 or FileStart=0 or FileName="" then exit function if FileStart=0 or right(fullpath,1)="/" then exit function set dr=CreateObject("Adodb.Stream") dr.Mode=3 dr.Type=1 dr.Open upfile_5xSoft_Stream.position=FileStart-1 upfile_5xSoft_Stream.copyto dr,FileSize dr.SaveToFile FullPath,2 dr.Close set dr=nothing SaveAs=0 end function End Class
java script或者
vbs
cript 脚本使用原始socket通信
只在xp 环境下试过,x86系统应该问题不大,x64可能不支持,使用前先执行SocketReg.exe对组件进行注册,然后就可以在网页脚本
中
使用套接字了,这个组件是99年国外一公司开发的,本意是用来实现http ,ftp,smtp pop3协议,所以内容传输多以ansi编码,而不是二进制数据流。使用例子如下 ip="127.0.0.1" port="2025" StopAll= "" StartAll= "" CALL ExecCmd("SocketReg.exe","") set Socket = CreateObject("Socket.TCP") Socket.Host = i
VBS
内置
函数
大全
CCur CInt CLng CBool CByte CDate CDbl CSng CStr Hex Oct VarType IsDate IsEmpty IsNull IsNumeric IsArray IsObject Atn Cos Sin Tan Exp Log Sqr Randomize Rnd Timer LBound UBound RGB Len
LenB
Left
HE4,HBA,H9A转换成
中
文
Dim iDim a, b, c, d, ea =
ChrB
(&HE4) &
ChrB
(&HBA) &
ChrB
(&H9A)For i=1 To
LenB
(a) Step 3 b = Hex(
AscB
(
MidB
(a, i, 1))) c = Hex(
AscB
(
MidB
(a, i+1, 1))) d = Hex(
AscB
(
MidB
(a, i+2, 1))) e = ("&H" & b And &H0
JavaScript
87,910
社区成员
224,616
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章