Avatar billede martinfrost Nybegynder
19. februar 2002 - 19:02 Der er 9 kommentarer og
1 løsning

Split ved to tegn...

Hvordan laver man en funktion, der splitter ved to forskellige tegn (eks. + og -)

Eks. på strenge

2x^2+4x-23
3t^3-454t+11
0.2x^6-8x-20
3t^2+24

Funktionen skal splitte op i hvert fald (altså ved plus og minus). Tanken er den at dette princip skal opfyldes:

led = split(str,"+" & "-")

Jeg tror, jeg havde lavet et godt script, der kunne, men det buggede :( :( :( ...

Håber meget nogen kan hjælpe :)

mvh
Martin
Avatar billede hirayz Nybegynder
19. februar 2002 - 19:16 #1
kan du ikke bare
led = split(str,"+") og der efter spilt på -
led = split(str, "-")

ved ikke om det virker
Avatar billede 2-maz Nybegynder
19. februar 2002 - 19:22 #2
Så skal du gører det sådan her (tror jeg):

led1 = split(str, "+")
led2 = split(str, "-")
Avatar billede martinfrost Nybegynder
19. februar 2002 - 19:23 #3
Det er vel rimelig logisk, at den så kun splitter ud fra minus'erne, så det virker altså desværre ik :(

og hvis du mener

led = split(str,"+")
led = split(led, "-")

virker det heller ik... :-/
Avatar billede 2-maz Nybegynder
19. februar 2002 - 19:23 #4
Hehe, det ligner da vidst lidt hirays svar...
Avatar billede martinfrost Nybegynder
19. februar 2002 - 19:24 #5
2-maz: Ideen er sikkert go nok, men led1 kan jo godt indeholde "-" og led2 godt indeholde "+" så den går ik...
Avatar billede Søren Bech Morsing Praktikant
19. februar 2002 - 19:27 #6
du er nødt til at splitte ved + el - først
så har du et array
Gennemløb dette med en forløkke fx, og split så ved det andet tegn.
Hvis du så skal samle strengen igen, er du nødt til at samle den igen, men det kan du jo evt. gøre samtidige med at du tjecker for dit 2. tegn
Avatar billede martinfrost Nybegynder
19. februar 2002 - 19:35 #7
Sbk: Kunne du vise mit et eksempel med kode, for jeg forstår udmærket, hvad du mener, men kan ikke få det til at virke, selvom det ikke burde være svært... :-?
Avatar billede Søren Bech Morsing Praktikant
19. februar 2002 - 20:03 #8
sagtens:

dinstreng = "hej-med+dig-har+du+det+godt-?"

dinstreng = split(dinstreng, "+")
temp = ""
for i = 0 TO UBound(dinstreng) ' skal måske være +1 eller -1 inde ved dinstreng
tempi = "" & dinstreng(i)
temp = temp & split(tempi, "-")
next

så skulle temp da gerne indehold din streng
Avatar billede martinfrost Nybegynder
20. februar 2002 - 11:32 #9
Hmn, kan altså ikke få det til at funge. Får følgende fejl:

Der opstod en Microsoft VBScript-kørselsfejl fejl '800a000d'
Typer stemmer ikke overens
/andet/difftest.asp, linje 15

linje 15: temp & split(tempi, "-")


Men i stedet har jeg prøvet at lave en "manuel" splitfunktion ved hjælp af left,mid,right,instr og det ser ud til at virke nu, men hvis nogen kan komme med et forslag lignende sbk's, som er testet og virker, så er der stadig point at hente. Men for nu, lukkes spørgsmålet.
Avatar billede martinfrost Nybegynder
20. februar 2002 - 11:33 #10
manglede lige noget af linje 15. Den ser sådan her ud:
temp = temp & split(tempi, "-")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester