webForumDet fria alternativet

split

15 svar · 532 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 630 inlägg
#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

liljaMedlem sedan juli 20041 219 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"

GimboMedlem sedan dec. 20001 630 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?

jonnyzMedlem sedan okt. 2004504 inlägg
#4

Hur vill du att resultate ska se ut?

GimboMedlem sedan dec. 20001 630 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

J.N.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?

GimboMedlem sedan dec. 20001 630 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.

PeeerMedlem sedan mars 20025 362 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
%>

?

GimboMedlem sedan dec. 20001 630 inlägg
#9

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

Library not registered.

den ogillar regExp

@ndersMedlem sedan juni 200026 914 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

GimboMedlem sedan dec. 20001 630 inlägg
#11

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

@ndersMedlem sedan juni 200026 914 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.

GimboMedlem sedan dec. 20001 630 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?

@ndersMedlem sedan juni 200026 914 inlägg
#14

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

GimboMedlem sedan dec. 20001 630 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)
@ndersMedlem sedan juni 200026 914 inlägg
#16

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

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