webForumDet fria alternativet

skriva ut rader.

ASP

6 svar · 250 visningar · startad av Dpo

Medlem sedan aug. 2000159 inlägg
Frågan#1

Har följande kod

<!--
################################################
Detta script är skrivert av Anders WIckman 2003-04-26
Scriptet är ett litet Random script som utnyttjar ett
Text dokument för att slumpa fram rader att visa

Scriptet är inte sådär jätte optimerat, syftet med scripet
är en annan sak
################################################
-->
<html>
<head>
<title>Content Rotator</title>
</head>

<body text="#FFFFFF" bgcolor="#000000">
<%
'Läser av hur många rader det finns i TXT dokumentet
	Set fs=Server.CreateObject("Scripting.FileSystemObject")
	Set f=fs.OpenTextFile(Server.MapPath("text.txt"))
	
		do until f.AtEndOfStream
			x = f.line
			p = f.readline
		loop
		
	F.Close
	Set F = Nothing
	Set FS = Nothing
	
'Slutar att läsa av antal rader, och börjar med själva Random systemet och utskrivten

Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(Server.MapPath("text.txt"))

	RANDOMIZE
		Min = 1	
		Max = x
		Max = int((Max - Min + 1) * Rnd + Min)
		
		Max = Max - 1
		
	For i = Min to Max
		f.Skipline
	Next

	Response.write "<b>"& f.ReadLine &"</b>"

f.Close
Set f=Nothing
Set fs=Nothing
%>

Den där koden tar text från en textfil och listar ut varje rad, nu tar den inte i ordning, vill att den ska visa raderna i ordning, sen ska raden tas bort ur textfilen när den visats en gång. Hur löser jag detta? och vore det kanske bättre att lösa det med hjälp av en accesskoppling istället för fsobject som inget webhotell stödjer.

Medlem sedan jan. 20032 285 inlägg
#2

Om du bara vill läsa och skriva över allt kan du ju köra det här enkla scriptet.

<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), ForReading)

Do Until objTS.AtEndOfStream
  Response.Write(objTS.ReadLine)
Loop

objTS.Close
Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), ForWriting)
objTS.WriteLine(" ")
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>
Medlem sedan aug. 2000159 inlägg
#3

Sebbe skrev:

Om du bara vill läsa och skriva över allt kan du ju köra det här enkla scriptet.

<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), ForReading)

Do Until objTS.AtEndOfStream
  Response.Write(objTS.ReadLine)
Loop

objTS.Close
Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), ForWriting)
objTS.WriteLine(" ")
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>

Tackar :)
Den fungerade dock inte.
Står följande

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument
/design/sms.asp, line 3

dvs denna rad är fel:
:x
Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), ForReading)

Tacksam för svar :r

Medlem sedan jan. 20032 285 inlägg
#4

Finns filen text.txt i samma mapp som scriptet då?

Medlem sedan aug. 2000159 inlägg
#5

Sebbe skrev:

Finns filen text.txt i samma mapp som scriptet då?

O ja!
Det andra scriptet jag bifogade fungerade ju. :l

Medlem sedan jan. 20032 285 inlägg
#6

Testa den här koden då. Inte för att jag tror att det ska göra någon skillnad, men men.

<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), 1)

Do Until objTS.AtEndOfStream
  Response.Write(objTS.ReadLine)
Loop

objTS.Close
Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), 2)
objTS.WriteLine(" ")
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>
Medlem sedan aug. 2000159 inlägg
#7

Sebbe skrev:

Testa den här koden då. Inte för att jag tror att det ska göra någon skillnad, men men.

<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), 1)

Do Until objTS.AtEndOfStream
  Response.Write(objTS.ReadLine)
Loop

objTS.Close
Set objTS = Nothing

Set objTS = objFSO.OpenTextFile(Server.MapPath("text.txt"), 2)
objTS.WriteLine(" ")
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>

Tack, det fungerade bättre, fungerade inte riktigt som jag ville, men fixar det själv. :)

286 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
147 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
146 ms — ändringar (db)