webForumDet fria alternativet

Skapa en 2 dimensionel array

8 svar · 243 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#1

Hej om jag har en text fil som innehåller typ något sådant här

Eriks Sida,erik.html
Annas Sida,anna.html
Leifs Sida,leig.hmtl

Sen har jag en sida som ska öppna denna textfil och bryta upp dem vid varje vbCrlf och sen vid varje , tecken så att jag kan loopa igenom arrayen och skriva ut först en rad med namnet på sidan och sen länken, sedan hoppa till nästa rad i textfilen (nästa position i arrayen) hur går jag tillväga då.

Hoppas någon förstår hur jag menar.

Texfilen öppnar jag så här

Set fso = CreateObject("Scripting.FileSystemObject") 
ReadFile = fso.OpenTextFile(strFileExact, 1).ReadAll 
Set fso = Nothing

tacksam

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#2
Set fso = CreateObject("Scripting.FileSystemObject") 
response.write replace(replace(fso.OpenTextFile(strFileExact, 1).ReadAll,vbcrlf,"<br>"),","," ")
Set fso = Nothing

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#3

Tack larsG, jag hade mer tänkt att skriva ut en länk, var kanske lite oklar i min beskrivning ovan. Går det att skriva ut en en länk med sidan som adress och texten innan , tecknet som text på länken ?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jag förstår. Är det inte enklare att läsa rad för rad då.

Set fso = CreateObject("Scripting.FileSystemObject") 
set inputFile = object.OpenTextFile(strFileExact,1)
while not inputFile.atEndOfStream
inputLine = inputFile.readline
position = instr(inputLine,",")
response.write mid(inputLine,1,position-1)
response.write "<a href='" & _
mid(inputLine,position+1) & "'>Något käckt</a><br>"
wend
inputFile.close
Set fso = Nothing

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#5

Jo det hade jag först

strFileExact = strPath + strFile
Set Fso = CreateObject("Scripting.FileSystemObject") 
Set Fso = Fso.GetFile(strFileExact) 
Set ReadFile = Fso.OpenAsTextStream(1, -2) 

Do While not ReadFile.AtEndOfStream 
	strRad = ReadFile.ReadLine 
	strKomma=inStr(strRad, ",") 
	strTxt=left(strRad, strKomma-1) 
	strSida=mid(strRad, strKomma+1) 
	Response.Write"<a href="""& strSida &""">"& strTxt &"</a>"
	Loop 
Readfile.Close
Set ReadFile = Nothing

Jag ville ha den i en array för att kunna stänga fso objektet tidigt och att använda de uppgifterna jag får ut på varje rad på andra ställen än i loopen. Smidigare med en array

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#6
Set fso = CreateObject("Scripting.FileSystemObject") 
ReadFile = fso.OpenTextFile(strFileExact, 1).ReadAll 
Set fso = Nothing

arr = split(readfile,vbcrlf)

for i = 0 to ubound(arr)
strRad = arr(i)
strKomma=inStr(strRad, ",") 
strTxt=left(strRad, strKomma-1) 
strSida=mid(strRad, strKomma+1) 
Response.Write"<a href="""& strSida &""">"& strTxt &"</a>"
Loop

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#7

Tack larsg, your the greatest :) FÖrutom att du skrev loop istället för next.

Ett litet problem bara, när den skrivit ut alla länkarna kommer detta upp

Körningsfel i Microsoft VBScript fel '800a0005' 

Ogiltigt proceduranrop eller argument.: 'left'

som är detta

strTxt=left(strRad, strKomma-1)

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Det beror på att det i din fil finns minst en (1) rad som inte innehåller något komma.
Detta medför att strKomma får värdet 0 och du skickar in -1 som argument till left vilket den uppfattar som kränkande.

Set fso = CreateObject("Scripting.FileSystemObject") 
ReadFile = fso.OpenTextFile(strFileExact, 1).ReadAll 
Set fso = Nothing
arr = split(readfile,vbcrlf)

for i = 0 to ubound(arr)
strRad = arr(i)
strKomma=inStr(strRad, ",") 
if strKomma > 0 then
   strTxt=left(strRad, strKomma-1) 
else
   strTxt="Text saknas"
end if
strSida=mid(strRad, strKomma+1) 
Response.Write"<a href="""& strSida &""">"& strTxt &"</a>"
next

kanske?

red:

eller så borde du lägga in en kontroll om raden är tom också

Set fso = CreateObject("Scripting.FileSystemObject") 
ReadFile = fso.OpenTextFile(strFileExact, 1).ReadAll 
Set fso = Nothing
arr = split(readfile,vbcrlf)

for i = 0 to ubound(arr)
strRad = arr(i)
if len(strRad) > 0 then
strKomma=inStr(strRad, ",") 
if strKomma > 0 then
   strTxt=left(strRad, strKomma-1) 
else
   strTxt="Text saknas"
end if
strSida=mid(strRad, strKomma+1) 
Response.Write"<a href="""& strSida &""">"& strTxt &"</a>"
end if
next

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 18 jan 2002]

erkaMedlem sedan dec. 19996 522 inlägg
#9

Ibland så undrar man :) Tack igen, nu ska jag inte kräva din uppmärksamhet mer, he he..Ha en trevlig helg!

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)