webForumDet fria alternativet

Problem med att läsa in text via FSO

ASP

2 svar · 332 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag har hittat ett litet fint "censur"-script, fungerar kanonbra.
Problemet är att mitt i scriptet ligger de censuerade orden.

'ursäkta språket
badChars = array("svordom1", "svordom2", "svordom3")

Vad jag nu ville göra är att skriva en textfil, som jag läser in med FSO.

Const Filename = "../Styles/arraytest.asp"	' file to read
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim FSO
set FSO = server.createObject("Scripting.FileSystemObject")
Dim Filepath
Filepath = Server.MapPath(Filename)
if FSO.FileExists(Filepath) Then
	Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False,TristateUseDefault)		
		Dim Contents
		Contents = TextStream.ReadAll
		Contents = LCase(Replace(Contents,vbCrlf,""))
		badChars = array(Contents)
		TextStream.Close
	Set TextStream = nothing
end if
Set FSO = nothing
[kod]
Textfilen ser ut så här:
[kod]
"svordom1",
"svordom2",
"svordom3"

Jag får inga som helst felmedelande, men scriptet censurerar inte längre. Vad gör jag för fel?
:q

Medlem sedan maj 200010 687 inlägg
#2

Det beror på att du lägger in en enda sträng i arrayen med värdet:

"svordom1",
"svordom2",
"svordom3"

Prova detta:

Text-filen:
svordom1
svordom2
svordom3

Sen istället för:
badChars = array(Contents)

Så kör du med:
badChars = Split(Contents, vbCrLf)
Medlem sedan mars 20011 880 inlägg
#3

Tyvärr, fungerade inte.

Function ReplaceBadWords(InputComments) 
Dim badChars, newChars, i

Const Filename = "../Styles/arraytest.asp"	' file to read
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim FSO
set FSO = server.createObject("Scripting.FileSystemObject")
Dim Filepath
Filepath = Server.MapPath(Filename)
if FSO.FileExists(Filepath) Then
	Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False,TristateUseDefault)		
		Dim Contents
		Contents = TextStream.ReadAll
		Contents = LCase(Replace(Contents,vbCrlf,""))
		'badChars = array(Contents)
		badChars = Split(Contents, vbCrLf)
		TextStream.Close
	Set TextStream = nothing
end if
Set FSO = nothing

'create our array of bad words
'badChars = array("svordom1","svordom2","svordom3") 
'**************

'**************
newChars = Lcase(InputComments)
for i = 0 to uBound(badChars) 
newChars = Replace(newChars, badChars(i), "<Img Src=""../Bild/censur.gif"" >") 
Next 
ReplaceBadWords = newChars 
End function

Textfilen:

fan
djävla
djävlar

Det bör väll inte ha någon skillnad om jag kallar filen txt eller asp?

[REDIGERAT]
Jag har löst det.

Contents = TextStream.ReadAll		
		Contents = LCase(Contents)		
		badChars = Split(Contents, vbCrLf)
		TextStream.Close

Tack för hjälpen

378 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
252 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)