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
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 ?
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
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