webForumDet fria alternativet

Problem med arrayer

14 svar · 840 visningar · startad av leniz

lenizMedlem sedan aug. 2001676 inlägg
#1

Hej!
Suttit länge nu och sökt och testat men verkar inte lyckas få till detta :-(

Jag har en sträng med ord separerade med kommatecken som jag vill skapa en array av men hur jag än gör så verkar arrayen tolka det som ett ord och inte t.ex. 3 olika (separerade med kommatecken).

Kör jag en split på kommatecken och försöker lägga in det så får jag felmeddelande att det är ett ogiltigt typnamn.

strangen=strangen & "," & ""&words(i)&""
orden=split(strangen,",")
array(orden)

l-boyMedlem sedan juli 2003223 inlägg
#2

Bifoga gärna lite mer kod. Det där ser inte riktigt komplett ut.

l-boyMedlem sedan juli 2003223 inlägg
#3

Otestat. Men det fungerar väl ungefär så här?

strangen = "ett,två,tre"
array = split(strangen,",")

response.write array(0) -> ett
response.write array(1) -> två
response.write array(2) -> tre
lenizMedlem sedan aug. 2001676 inlägg
#4

Tack för snabbt svar! :-)
Ja, den här sista raden används så här och det är där man får felmeddelandet om ogiltigt typnamn. Skippar jag raden med "orden=split(strangen,",")" så får jag inget felmeddelande om ogiltigt typnamn, men då tolkas istället alla ord som ett i arrayen (den får bara ett värde istället för t.ex. 3 värden).
set x = command.Execute(sql, array(orden))

l-boyMedlem sedan juli 2003223 inlägg
#5

Hur skapar du array? Vad innehåller den i ditt exempel?

lenizMedlem sedan aug. 2001676 inlägg
#6

words(i) är en for/next loop som skriver ut olika namn. Skriver jag ut "strangen" så ser det t.ex. ut så här:
Anders,Fredrik,Rickard
Jag har också testat ändra så utskriften blir så här:
'Anders','Fredrik','Rickard'

words = split(fnamn)
for i = 0 to ubound(words)
if t = "" then
strangen=""&words(i)&""
else
strangen=strangen & "," & ""&words(i)&""
end if
next

voigtann1Medlem sedan juni 20018 810 inlägg
#7

om fnamn är "Anders Fredrik Rickard"

så vid en split(fnamn) så kommer den splitar på " " (mellanslag)

Ocg in det bara är så att du vill delar en sträng och sätta ihop den med "," så kan du köra en join(array, ",")
(eller köra en replace på " " och ersätt den med ",")

Hänger inte riktigt med på vad du ha för data och vad du vill ha för data när din kod har körts.

noshorninMedlem sedan aug. 2008662 inlägg
#8
 
Array(strangen)

Är allt du behöver skriva om strangen innehåller ord i formatet "ett,två,tre"...

lenizMedlem sedan aug. 2001676 inlägg
#9

Ja, fnamn kan vara så som du skriver som exempel.

Det jag vill med den är att varje ord ska skickas in i array(orden) så att det blir lika många i antal som motsvarande ? som jag har i min sql sats, vilket alltså är ett per ord som finns i den där strängen fnamn.
Men den vill som sagt bara tolka det jag har i "orden" som ett värde och inte flera i min sista rad: set x = command.Execute(sql, array(orden))

lenizMedlem sedan aug. 2001676 inlägg
#10

noshornin, ja det tycker jag med men då tolkar den det som ett ord och inte 3 ord :-(

Har jag 3 st värden (?) i min sql sats och skickar iväg som du skriver med array(strangen) så får jag felmeddelande "Det har inte angetts något värde för en eller flera nödvändiga parametrar."
Byter jag ut set x = command.Execute(sql, array(orden)) och istället skriver in orden manuellt i koden så att jag alltså skriver så här:
set x = command.Execute(sql, array(fredri,anders,rickard)) så fungerar det som det ska.
Så det jag inte förstår är varför den tolkar min "orden" som ju innehåller precis samma sak som ett ord, men inte när jag skriver in det manuellt.

voigtann1Medlem sedan juni 20018 810 inlägg
#11
orden= split("Fredrik Anders Calle") ' Array("Fredrik", "Anders", "Calle")
set x = command.Execute(sql, orden)

om orden är en array (vilket den bli om du kör split) är det ända du behöver göra i så fall...

lenizMedlem sedan aug. 2001676 inlägg
#12

Tack Voigtann men det blir tyvärr samma felmeddelande om jag tar bort split och använder
set x = command.Execute(sql, orden)
D.v.s. "Det har inte angetts något värde för en eller flera nödvändiga parametrar."

lenizMedlem sedan aug. 2001676 inlägg
#13

Ursäkta, jag som läste fel. Split skulle ju inte bort. Nu fungerar det! Stort tack! :-)

voigtann1Medlem sedan juni 20018 810 inlägg
#14

vad är command för objekt?

lenizMedlem sedan aug. 2001676 inlägg
#15

server.createobject("ADODB.command")

Genererad på 416 ms · cache AV · v20260730165559-full.f96bc7eb