du kan splitta upp raden till en array, sedan loopa genom den arrayen och på det sättet få fram varje värde mellan tabbarna
cya,
PatrikB
19 svar · 297 visningar · startad av origon
Hej, allt bara bra?
Jo det är så att jag skulle behöva lite hjälp med att läsa mellan tabbar i en textfil.
Jag vet hur man läser hela raden men hur gör jag om jag bara vill plocka ut texten mella tabbar t.ex.
Text1 Text2 Text3 Text4
Då vill jag att X1 = Text1 X2 = Text2 och så vidare.
Ska ha det till att lägga in informationen i en databas nämligen.
Hoppas ni förstår mig
Hade bra alle
du kan splitta upp raden till en array, sedan loopa genom den arrayen och på det sättet få fram varje värde mellan tabbarna
cya,
PatrikB
exakt hur skulle den koden se ut?
arr = split(textrad,chr(9))
for i = lbound(arr) to ubound(arr)
sql = "insert into ... " & arr(i) ...
'...
next
Tackar, men hur gör jag om jag vill att X1 ska läggas in i Fält 1 och X2 ska läggas in i fält 2?
Hoppas ni förstår, gör det knappt själv.
Jo men hur får jag fram värdet X1 och X2 ur LarsG's kod?
ungefär såhär
arr = split(textrad,chr(9))
for i = lbound(arr) to ubound(arr) step 2
sql = "insert into ogrish(a,b) values('" & arr(i) & "','" & arr(i+1) & "')"
connect.execute sql,,128
next
Ahh LarsG du är min gud just nu
Du förstår inte hur tacksam jag är för detta...
hmm fick lite problem då jag skulle lägga in mer än 3 poster
Feltyp:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex: '[number: 3]'
/test/text.asp, line 18
#16 arr = split(T.ReadLine,chr(9))
#17 for i = lbound(arr) to ubound(arr) step 5
#18 sql = "insert into movies(a,b,c,d) values('"& arr(i) &"','"& arr(i+1) &"','"& arr(i+2) &"','"& arr(i+3) &"')"
#19 connection.execute sql,,128
Men det fungerar om jag skriver såhär fast då får jag fel info i d
#16 arr = split(T.ReadLine,chr(9))
#17 for i = lbound(arr) to ubound(arr) step 5
#18 sql = "insert into movies(a,b,c,d) values('"& arr(i) &"','"& arr(i+1) &"','"& arr(i+2) &"','"& arr(i+2) &"')"
#19 connection.execute sql,,128
[Redigerat av origon den 07 nov 2001]
[Redigerat av origon den 07 nov 2001]
Varför har du step 5 när du gör insert på 4 värden?
Glömde byta tillbaka efter att provat en hel del värden
Jag får följande fel då jag byter till 4
Feltyp:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex: '[number: 9]'
/test/text.asp, line 18
Det beror ju på hur många värden det står på varje rad.
Om du har 5 värden så går inte det jämt upp i 4. Hur vill du göra med de extra värdena?
t.ex.
a b c d e
vill du ha
a b c d på en rad och
e null null null på en rad
eller skall man hoppa över e?
ahh så det måste stämma överens med antal värden,
Hur gör man om man vill att han ska hoppa över e?
och jag får detta felmeddelandet om jag byter ut t.ex a till size
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel i INSERT INTO-uttryck.
/test/text.asp, line 19
[Redigerat av origon den 07 nov 2001]
Om du lägger till det fetstilta så borde man hoppa ur loopen om det inte finns 4 element till.
arr = split(T.ReadLine,chr(9))
for i = lbound(arr) to ubound(arr) step 4
[b]if i + 3 > ubound(arr) then exit for[/b]
sql = "insert into movies(a,b,c,d) values('"& arr(i) &"','"& arr(i+1) &"','"& arr(i+2) &"','"& arr(i+3) &"')"
connection.execute sql,,128
next
ahh tackar..
Size är ett fält i databasen och jag menar att om man skriver såhär får man felmeddelandet.
sql = "insert into movies(size,b,c,d) values('"& arr(i) &"','"& arr(i+1) &"','"& arr(i+2) &"','"& arr(i+3) &"')"
Jag märkte att det hände samma sak med namnet user.
hoppas jag förklarade bättre denna gång.
user (och size) är ett reserverat ord i SQL så det kan vara lämpligt att byta ut det mot något annat.
Om du absolut vill använda user som kolumnnamn så får du skriva
sql = "insert into movies([user],b,c,d) values('"& arr(i) &"','"& arr(i+1) &"','"& arr(i+2) &"','"& arr(i+3) &"')"
Du får göra samma sak med size.
aha tack så mkt för allt