永发信息网

请教一下,ASP读取文本文件,然后在进行统计

答案:3  悬赏:80  手机版
解决时间 2021-02-18 14:41
  • 提问者网友:轻浮
  • 2021-02-18 05:26
例如,我要读取aa.txt
aa.txt的内容如:
1,2,3,4|1,2,3,4
1,3,5,7|1,2,3,4
2,4,6,8|1,2,3,4

比方说,我要读取1这个数值,|这个后面的我不要读取
则1总共有2个

这代码用ASP怎么写啊...
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-02-18 05:35
<%
Function GetNum(e)
Dim FSO,TS
Dim LineStr
Set Fso=Server.CreateObject("Scripting.FileSystemObject")
File=server.MapPath("aa.txt")
Set TS = FSO.OpenTextFile(File,1)
do until Ts.AtEndOfStream
LineStr=LineStr&Split(TS.ReadLine,"|")(0)&","
'LineStr=LineStr&Split(TS.ReadLine,",")(0)&","
'因为看不懂你说的意思,究竟是只统计第一个逗号前的一个数字,还是“|”号前的所有数字都统计在内,所以给了两种方案,上一行是在“|”前所有数字都统计在内,而下一行则是只统计首个数字。你自己选吧,下次提问题,自己先看看是否通顺,别人是否能看懂,是否有歧义,否则耽误时间,别人也不想回答。
loop
Set TS = Nothing
Set FSO = Nothing
GetNum=UBound(Split(LineStr,e&","))
End Function

Response.Write "文本aa.txt中 1 共出现了 "&GetNum(1)&" 次
"
Response.Write "文本aa.txt中 2 共出现了 "&GetNum(2)&" 次
"
Response.Write "文本aa.txt中 8 共出现了 "&GetNum(8)&" 次
"
%>
全部回答
  • 1楼网友:duile
  • 2021-02-18 07:03
Dim Num As Integer Dim TmpStr As String Dim TmpPerStr() As String Dim I As Integer Open "路径:\aa.txt" For Input As #1 Num = 0 Line Input #1, TmpStr Do While Not EOF(1) TmpStr = Left(TmpStr, InStr(TmpStr, "|")) TmpPerStr = Split(TmpStr, ",") For I = 0 To UBound(TmpPerStr) If TmpPerStr(I) = "1" Then Num = Num + 1 Next I Loop Close #1 response.write("一共有:" & num & "个")
  • 2楼网友:千夜
  • 2021-02-18 06:40
Function ReadFromTextFile(ByVal FileUrl,ByVal CharSet) dim str With Server.CreateObject("ADODB.Stream") .Type = 2 'adTypeText = 2 以本模式读取 .Mode = 3 'adModeReadWrite = 3 .Charset = CharSet .Open .loadfromfile FileUrl str = .ReadText .Close End With ReadFromTextFile = str End Function dim txt,stxt,x,y,Count1 Count1 = 0 txt = ReadFromTextFile(Server.MapPath("aa.txt"),"UTF-8") txt = Split(txt,CHR(13) & CHR(10)) If IsArray(txt) then For x = 0 to Ubound(txt) stxt = Split(txt(x),"|")(0) Count1 = Count1 + Ubound( Split(stxt,"1") ) Next End if response.Write Count1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯