webForumDet fria alternativet

Läsa mellan tabbarna i en textfil.

ASP

19 svar · 282 visningar · startad av origon

Medlem sedan okt. 2001101 inlägg
Frågan#1

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

------------------
<A HREF="http://www.origons.com" TARGET=_blank>www.origons.com
</A>

[Redigerat av origon den 07 nov 2001]

[Redigerat av origon den 07 nov 2001]

Medlem sedan mars 20002 836 inlägg
#2

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

------------------
'## -- second place is the first looser -- ##'

Medlem sedan okt. 2001101 inlägg
#3

exakt hur skulle den koden se ut? ;)

------------------
<A HREF="http://www.origons.com" TARGET=_blank>
www.origons.com
</A>

Medlem sedan dec. 200012 464 inlägg
#4
arr = split(textrad,chr(9))
for i = lbound(arr) to ubound(arr)
sql = "insert into ... " & arr(i) ...
'...
next

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

Medlem sedan okt. 2001101 inlägg
#5

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.

------------------
<A HREF="http://www.origons.com" TARGET=_blank>
www.origons.com
</A>

Medlem sedan aug. 20012 349 inlägg
#6

"insert into Tabell(fält1, fält2) VALUES('" & x1 & "','" & x2 & "')"

typ. :e

------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.

Medlem sedan okt. 2001101 inlägg
#7

Jo men hur får jag fram värdet X1 och X2 ur LarsG's kod?

Medlem sedan maj 2000175 inlägg
#8

prova lite.

du kan ju t.ex skriva in "reponse.write arr(i)" i LarsG's exempel....

Medlem sedan dec. 200012 464 inlägg
#9

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

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

Medlem sedan okt. 2001101 inlägg
#10

Ahh LarsG du är min gud just nu :e
Du förstår inte hur tacksam jag är för detta...

Medlem sedan okt. 2001101 inlägg
#11

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]

Medlem sedan dec. 200012 464 inlägg
#12

Varför har du step 5 när du gör insert på 4 värden?

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

Medlem sedan okt. 2001101 inlägg
#13

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

Medlem sedan dec. 200012 464 inlägg
#14

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?

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

Medlem sedan okt. 2001101 inlägg
#15

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]

Medlem sedan dec. 200012 464 inlägg
#16

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

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

Medlem sedan dec. 200012 464 inlägg
#17

och jag får detta felmeddelandet om jag byter ut t.ex a till size

Vad är a och vad är size?

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

Medlem sedan okt. 2001101 inlägg
#18

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.

Medlem sedan dec. 200012 464 inlägg
#19

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.

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

Medlem sedan okt. 2001101 inlägg
#20

aha tack så mkt för allt :)

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