webForumDet fria alternativet

split

ASP

15 svar · 532 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

hur kan jag kora en split mellan tva stycken " ",

strangen ser ut som foljande just nu:
"lashd","alkaklsd", jhasdjk, asdk","klasj"

vill att den ska splitta det som finns mellan citat-tecknena och lagra det i en array

Medlem sedan juli 20041 183 inlägg
#2

array = split(str, """,""")

den borde fungera men array(0) blir då

"lashd

Alltså med ett citattecken först... Splittern splittar vid varje ",". Jag skulle rekommendera att du splittar med kanske #%# efterssom den ordningsföljden av de tecknena osannolikt skulle kunna förekomma i en vanlig text när däremot citatecken och kommatecken är vanliga...

om du skapar strängen själv skulle jag rekommendera att du lägger in en ovanlig textföljd där den ska splittas...

ex. om du lägger till #%# efter varje textstycke:

str = "Detta ska vara#%#en sträng med tecken i." & "#%#"
str = str & "Nu kommer lite till#%#tecken" & "#%#"
array = split(str, "#%#")

Då får du:
array(0) = "Detta ska vara"
array(1) = "en sträng med tecken i."
array(2) = "Nu kommer lite till"
array(3) = "tecken"

Medlem sedan dec. 20001 626 inlägg
#3

skapar tyvarr inte strangen sjalv, och det e just det problemet du namner som jag far, gar detta att loa pa ngt vis?

Medlem sedan okt. 2004502 inlägg
#4

Hur vill du att resultate ska se ut?

Medlem sedan dec. 20001 626 inlägg
#5

"blabal","blabla,"blabl"
"1568","879","908"

vill att d ska se ut som
1568 = u(3)
879 = u(4)
908 = u(5)

eftersom jag inte vill ha med de tre forts sa loopar jag fran i = 3 to ubound, men far u(3) = "1568 vill inte ha med "-fnuttarana i ngt av vardena

Medlem sedan apr. 20031 660 inlägg
#6

HEJ!

Men, om du splittar på ", ska de ju inte komma med?

Stoppa annars in en Replace på lämpligt ställe.
http://www.devguru.com/Technologies/vbscript/quickref/replace.html

Det känns också som att en relevant sträng med text hade varit lättare att arbeta med för oss?

Medlem sedan dec. 20001 626 inlägg
#7

ok, vet inte hur jag skall forklara det battra an sa har, men jag gor ett sista forsok:

det e tva stycken rader jag har ett med information och den andra med varden, bada raderna ser ut pa samma satt med:
"info1","info2","info3"...,"info14"...
"varde1","varde2","varde3"...,"varde14"

jag vill endast splitta vardena och kor med foljande loop:

For i = 13 to ubound(u)
Response.Write i & "col" 
response.write u(i) & "<br>"
next

nar jag skriver ut vardena sa ser mitt forsta varde ut pa foljande vis:
13colinfo14" "varde1

och det sista i loopen e detta
26col"

och min split ser ut pa foljande vis:

u = Split(Response, CHR(34) & "," & CHR(34), -1, vbTextCompare)

hoppas ni forstar mig nu, vill enbart loopa det som finns mellan dubbel fnuttarna och nar jag gor min split sa blir det konstigt som ni ser.

Medlem sedan mars 20025 907 inlägg
#8
<%
dim arrTmp()
strVar = """lashd"",""alkaklsd"", ""jhasdjk"", ""asdk"",""klasj"""

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = """(.*?)"""
Set Matches = objRegExp.Execute(strVar)
if Matches.count > 0 then

	redim arrTmp(Matches.count - 1)
	For i = 0 to Matches.count - 1
		arrTmp(i) = Matches(i).SubMatches(0)
		Response.write "arrTmp(" & i & ") = " & arrTmp(i) & "<br>"
	Next
	
else
	response.write "inga träffar!"
end if
%>

?

Medlem sedan dec. 20001 626 inlägg
#9

finns det ngt annat alternativ forrutom regExp for jag far detta felmeddelande:

Library not registered.

den ogillar regExp

Medlem sedan juni 200032 967 inlägg
#10

Jag hade försökt göra det lättare för mig.

  1. Se till att "," omger varje värde.
  2. Splitta
  3. loopa allt utom första och sista arraypositionen.

mvh

Medlem sedan dec. 20001 626 inlägg
#11

anders strangen bestammer inte jag, utan far den som jag visat... har du mojligtvis ngn kod som kan hjalpa?

Medlem sedan juni 200032 967 inlägg
#12

Bara för att du får strängen betyder inte det att du inte kan modifiera den. Lägg till ", först och ," sist.

Medlem sedan dec. 20001 626 inlägg
#13

ok du har ratt, men jag loopar ju fran i = 13 dvs andra raden pa strangen jag far hur skall jag kunna lagga till det dar pa borjan o slutet av andra raden?

Medlem sedan juni 200032 967 inlägg
#14

Du får visa mer kod. Hur du får in sakerna i variabler, hur du splittar, etc.

Medlem sedan dec. 20001 626 inlägg
#15

jag loste det pa ett underligt men lyckat satt:

u = Split(Response, vbCrLf, -1,vbTextCompare)
y = """," & u(1) & ","""
a = Split(y, CHR(34) & "," & CHR(34), -1, vbTextCompare)
Medlem sedan juni 200032 967 inlägg
#16

Det var så jag menade att du skulle göra, så det var ju bra att du fick ihop det. :)

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)