Just nu i M3-nätverket
Gå till innehåll

Splitta sträng


m a r c u s

Rekommendera Poster

Sitter här med strängen q. Den ser ut så här:

 

johan "kalle svensson" lisa sofia

 

Alltså en vanlig söksträng!

Nu vill jag dela upp q i en array, med ett sökord i varje element. Ovan finns det naturligtvis fyra sökord. Hur kan man tänkas göra det? Söker efter en någorlunda enkel lösning - med 100 rader kod kan man göra det mesta...

Länk till kommentar
Dela på andra webbplatser

Som vanligt finns det väl nåt annat sätt att göra det, men det enklaste (för mig) är att bara göra det:

 

bQuote = false

strTemp = ""

array = ny array ' vet ej hur det funkar i vb

 

for i = 1 to len(q)

c = mid(q, i, 1)

if c = " " and bQuote = false then

' lägg till strTemp i arrayen.

strTemp = ""

else if asc© = 34 then

if bQuote = false then

bQuote = true

else

bQuote = false

' lagra strTemp i arrayen.

strTemp = ""

end if

else

strTemp = strTemp & c

end if

next

 

Principen är alltså den att du läser igenom tecken för tecken och sparar till strTemp. När du kommer till ett mellanslag så sparas det du fått i strTemp dittills som ett nytt element i arrayen. strTemp nollställs därefter och du fortsätter kolla tecken för tecken. Kommer du till ett " så sparas inte strTemp när den kommer till mellanslag, utan istället sparas strTemp till arrayen när nästa " kommer. Där nollställs då både strTemp samt "-tecknet så den sparar efter mellanslag igen.

 

 

Länk till kommentar
Dela på andra webbplatser

En liten detalj bara som jag glömde (men som kanske du kom på själv) är ju att när loopen är slut (efter next) så måste du ju spara det som eventuellt finns i strTemp då, annars kommer ju inte sista sökordet med.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...