Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:15 Der er 35 kommentarer og
1 løsning

kigge i et array

Hey - jeg har et array med navne på textboxe som indeholder tekst.
Jeg vil nu gerne lave en løkke der skal tjekke om aray'et indeholder et specielt navn..
Hvad gør jeg?

array.Length indeholder jo en integer med antal pladser i aray'et så den kan jeg ikke bruge i min løkke ..
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:18 #1
og hvorfor ikke ?
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:23 #2
while(tbNames.Length < j)
                {
                    if(tbNames[j].ToString() =="tbStartTime1" )
                    {
                        MessageBox.Show("array'et indeholder tbStartTime1");
                    }
                    j++;
                }
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:24 #3
der er i hvert fald et eller andet i vejen
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:25 #4
Ja for det første skal ulighedstegnet vel vendes
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:25 #5
while(tbNames.Length > j)
                {
                    if(tbNames[j].ToString() =="tbStartTime1" )
                    {
                        MessageBox.Show("Wuhu .. array'et indeholder tbStartTime1");
                    }
                    j++;
                }
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:25 #6
Mener du tbNames[j].Text i stedet for tbNames[j].ToString()    ??
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:25 #7
hvorfor ikke en for løkke ?
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:25 #8
Men .. så får jeg Object Reference not set to an instance of an object..
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:27 #9
Tror ikke man kan skrive tbNames[j].Text
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:28 #10
21:25:55 --> Er ikke med
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:29 #11
man bruger normalt for løkker til at løbe gennem arrays
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:30 #12
okay  - hvordan?
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:31 #13
;) Jeg tror vi skal se hvad du putter i dit array.
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:32 #14
for(int j = 0; j < tbNames.Length; j++)
{
  ...
}
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:32 #15
private void button1_Click(object sender, System.EventArgs e)
        {
            int i = 0;
            int j = 0;
            string[] tbNames = new string[20];

            foreach (Control control in this.Controls)
            {
               
                if (control is GroupBox)
                {
                    foreach(Control controlInGroupBox in control.Controls)
                    {
                        if(controlInGroupBox is TextBox)
                        {
                           
                            if(controlInGroupBox.Text !="")
                            {
                                tbNames[i] = controlInGroupBox.Name.ToString();
                                i++;
                            }
                               
                           
                        }
                    }
                }
                   
                while(tbNames.Length > j)
                {
                    if(tbNames[j] =="tbStartTime1" )
                    {
                        MessageBox.Show("Array'et indeholder tbStartTime1");
                    }
                    j++;
                }
            }
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:33 #16
Hvad sker der hvis du ikke har 20 textboxe ?  Tænk lidt over det.
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:34 #17
enten så bruger du:

for(j=0;j<i;j++)
{
  ...
}

eller så skifter du fra array til ArrayList
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:35 #18
Jamen jeg har 20 textboxe
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:36 #19
Hvorfor skifte til arraylist? Det er kun navne på textboxe.
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:38 #20
hvis du ikke ved hvor mange der er så er ArrayList ofte bedre end array
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:38 #21
okay ..
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:39 #22
Du tager kun dem med der står noget i. Derfor får du måske ikke altid 20 sat i dit array. Jeg siger bare, som Arne også viser i sin kode, at du nok ikke skal gå op til 20, men op til det antal du rent faktisk har.
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:40 #23
ja .. kan jeg godt se.
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:44 #24
private void button1_Click(object sender, System.EventArgs e)
        {
            int i = 0;
            int j = 0;
           
            ArrayList tbNames = new ArrayList();

            foreach (Control control in this.Controls)
            {
               
                if (control is GroupBox)
                {
                    foreach(Control controlInGroupBox in control.Controls)
                    {
                        if(controlInGroupBox is TextBox)
                        {
                           
                            if(controlInGroupBox.Text !="")
                            {
                                tbNames.Add(controlInGroupBox.Name.ToString());
                                i++;
                            }
                               
                           
                        }
                    }
                }
                   
                for(j=0;j<i;j++)

                {
                    if(tbNames[j].ToString() =="tbStartTime1" )
                    {
                        MessageBox.Show("Array'et indeholder tbStartTime1");
                    }
                }
               
               
            }
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:45 #25
Men det ændrer vel egentlig ikke på noget .. Kan i hvert fald ikke få det til at virke.
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:47 #26
Du behøver ikke "i" - du kan nu bruge tbNames.Length

Hvad mener du med "virker ikke"? Har du en textbox med navnet tbStartTime1 som ikke er tom ?
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:47 #27
UPS!
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:48 #28
Har fået det til at virke - lads os bare sige, at jeg fandt en lille trykfejl ..
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:49 #29
;)
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:49 #30
men et ArrayList har ikke en Length - har den?

tbNames.Count ?
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:50 #31
smid et svar begge 2 :)
Avatar billede erikjacobsen Ekspert
14. oktober 2005 - 21:54 #32
Jeg blander sprogene sammen, og du har ret ;) Men det er den du skal bruge.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionsarraylistmemberstopic.asp
Jeg samler ikke på point, tak.
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:55 #33
Yes sir.
Jeg siger tak!
Avatar billede arne_v Ekspert
14. oktober 2005 - 21:57 #34
jeg synes ikke rigtigt at jeg har bidraget med noget i dette spm. så behold points
Avatar billede noobsaibot Nybegynder
14. oktober 2005 - 21:58 #35
Jojo .. synes jeg.. Jeg samlet nemlig heller ikke på points!
Avatar billede noobsaibot Nybegynder
11. august 2006 - 23:40 #36
Jeg lukker :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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