Vill kunna semikolonavgränsa en tabbavgränsad textfil för att sedan infoga datan i en databas. Titta på kommandot split. Se artikeln: Litet exempel: Tackar för tipset Andreas, men det är lite mer jag vill åstadkomma: Kanske inte framgår, men strValues är en array. Vilket innehåller värdena från raden.<br>Semikolonavgränsa textfil
Hade tänkt mig något liknande:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objOpenFile = objFSO.OpenTextFile(strPath)
Do While Not objOpenFile.AtEndOfLine
Här vill jag plocka ut informationen rad för rad
(objOpenFile.ReadLine) och splitta infon med semikolon
(i en Array?).
Loop
Hur åstadkommer jag detta?Sv: Semikolonavgränsa textfil
http://www.pellesoft.nu/login/articles/vb/stringguide.asp
Hälsningar
/PelleSv: Semikolonavgränsa textfil
<code>
Dim objCon
Dim objRS
Dim strLine
Dim strFields
Dim strValues
Const adOpenKeyset=1
Const adLockOptimistic=3
Const adCmdTableDirect=512
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objOpenFile = objFSO.OpenTextFile(strPath)
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open " <<<Din connection sträng>> "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "TabellNamn", objCon, adOpenKeyset, adLockOptimistic,adCmdTableDirect
strFields = Array("Kolumn1","Kolumn2","Kolumn3")
Do Until objOpenFile.AtEndOfStream
strLine = objOpenFile.ReadLine
strValues = Split(strLine, ";")
objRS.Add strFields, strValues
Loop
objRS.Close
Set objRS = Nothing
objCon.Close
Set objCon = Nothing
objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing
</code>Sv: Semikolonavgränsa textfil
Vill kunna välja ut vilka fält som skall läggas in i databastabellen via en Array. Vidare vill jag även göra en koll på om fältet "EmailStatus" i textfilsraden är "JA", annars skall denna rad ej infogas i tabellen.
Vill kunna göra något i stil med följande:
objOpenFile.SkipLine ' Skippar första raden (rubrikraden) i textfilen
Do While Not objOpenFile.AtEndOfStream
strLine = objOpenFile.ReadLine
strValues = Split(strLine, ";")
' Här vill jag skapa en Array
If Array(14) = "Ja" Then
objRS.AddNew
objRS("GroupID") = 1
objRS("FirstName") = Array(2)
objRS("LastName") = Array(3)
objRS("EmailAddress") = Array(5)
objRS.Update
Else
objOpenFile.SkipLine
End If
LoopSv: Semikolonavgränsa textfil
<br>
I mitt exempel använde jag mig av möjligheten att skapa en post direkt med att medoden. Första argumentet anger en array med fiältnamn. Den andra parametern värdena.<br>
<br>
Du kan inte heller använda Array. Eftersom det är ett reserverat ord.<br>
<br>
Om du använder objOpenFile.SkipLine i elssatsen förlorar du nästa rad.<br>
<br>
Detta kanske kan vara en bit på traven:
<code>
objOpenFile.SkipLine ' Skippar första raden (rubrikraden) i textfilen
Do Until objOpenFile.AtEndOfStream
strLine = objOpenFile.ReadLine
strValues = Split(strLine, ";")' Här skapas en Array
If LCase(strValues(14)) = "ja" Then
objRS.AddNew
objRS("GroupID") = 1
objRS("FirstName") = strValues(2)
objRS("LastName") = strValues(3)
objRS("EmailAddress") = strValues(5)
objRS.Update
End If
Loop
</code>