Avatar billede ugologic Nybegynder
10. september 2010 - 13:56 Der er 5 kommentarer og
1 løsning

Array spørgsmål

Hej,

Jeg har 2 arrays.

Array1
Værdier i array1: 1,2,5,7

Array2
Værdier i array2: 1,2,3,4,5,6,7,8,9

Jeg skal lave oversigt der først viser array1 og derefter array2 (minus værdierne i array1):

1
2
5
7
3
4
6
8
9

Jeg har fået udskrevet array1, men skal nu have tilføjet array2 (minus værdierne i array1).

Hvordan gør jeg nemmest det?

Tænker at jeg skal gennemløbe array2 og så tjekke om array2(y) = array1(a) og så gøre noget derfra..?

For y=0 To UBound(Array2) Step 1
    For a=0 To UBound(Array1) Step 1
          'noget fedt her? :)
    Next
Next

Input please :)
Avatar billede tofte Juniormester
10. september 2010 - 14:09 #1
Jeg er ikke helt med på hvad du vil, men følgende giver en tabel med værdierne trukket fra hinanden.

arr1 = Split("1,2,5,7",",")
arr2 = Split(" 1,2,3,4,5,6,7,8,9",",")

strOut=""

For a = 1 To UBound(arr1)
    For b = 1 To UBound(arr2)
        result=arr1(a)-arr2(b)
        strOut=strOut&result&vbTab
    Next
    strOut = strOut&vbCrLf
Next
msgbox strOut 'eller resoponse.write strOut alt efter om du bruger vbs eller asp
Avatar billede ugologic Nybegynder
10. september 2010 - 14:29 #2
Nej, jeg har nok ikke formuleret mig helt perfekt.. :P

Jeg har en database med en tabel der hedder "tickets".

Jeg skal lave et udtræk fra den tabel.

En post i tabellen svarer til en ticket (eller opgave om man vil). En ticket kan være parent eller child eller bare en "almindelig" ticket (ikke parent/child).

I udtrækket vil jeg have alle tickets med parent/childs først, fx:

ID    | Parent/child (baseret på relationer i en anden tabel)
----------------------------
12312 | Parent
12331 | Child
12332 | Child
12431 | Parent
12531 | Child
11300 |
12302 |
12304 |
12370 |
12521 |
etc..
etc..

Det jeg gør er at tjekke alle tickets om de er parent/child og tilføjer dem i udtrækket og når de er tilføjet så bliver de tilføjet til array1.

Problemet er så når jeg skal gennemløbe alle tickets og tilføje dem efter parent/child delen, men der skal jeg jo undgå at tilføje de allerede tilføjede tickets igen.

Derfor har jeg et array (array1) som består af de tilføjede tickets.

Og array2 indeholder så alle tickets (tabellen gennemløbet).

Gav det mening?
Avatar billede ugologic Nybegynder
10. september 2010 - 14:32 #3
Så arrays indeholder disse værdier (fra ovenstående eksempel):

Array1 = 12312, 12331, 12332, 12431, 12531
Array2 = 11300, 12302, 12304, 12312, 12331, 12332, 12370, 12431, 12521, 12531
Avatar billede tofte Juniormester
10. september 2010 - 14:46 #4
Man kan selvfølgelig lave en array som tynder ud i arr2 så værdierne fra arr1 fjernes. Men mon ikke du kan lave et eller andet smart med databasen når du nu alligevel har data her. Jeg har dog ikke helt overblik over din database så der er jeg ikke til megen hjælp.

arr1 = Split("1,2,5,7",",")
arr2 = Split(" 1,2,3,4,5,6,7,8,9",",")

strOut=""

For a = 1 To UBound(arr2)
    isInArr1=false
    For b = 1 To UBound(arr1)
        if arr1(b)=arr2(a) then isInArr1=true
    Next
    if not isInArr1 then strOut=strOut&","&arr2(a)
Next
msgbox strOut
arr2 = Split(strOut,",")
Avatar billede ugologic Nybegynder
10. september 2010 - 15:04 #5
Mange tak for input!

Smid et svar.
Avatar billede tofte Juniormester
13. september 2010 - 11:54 #6
fint, det kommer her.
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