Avatar billede Red0z Nybegynder
22. september 2009 - 09:44 Der er 7 kommentarer og
1 løsning

Brug gridview med dynamiske array's.

Hey drengene! :)

Sidder og prøver at skrive mig et program, er ganske ny til C#, så bær over hvis jeg laver nogle tydelige fejl. Men koden er som følger.

  public void InsertButton_Click(object sender, EventArgs e)
        {
            string[] md5array;
            string path = folderBrowse.SelectedPath;
            if (!Directory.Exists(path))
            {
                MessageBox.Show("You must choose a valid path first");
            }
            else
            {
                string[] filePaths = Directory.GetFiles(path, "*.wma",
                                        SearchOption.AllDirectories);
               
                md5array = new string[1000000];
               
                for (int i = 0; i != (filePaths.Length); i++)
                {
                    filename = System.IO.Path.GetFileName(filePaths[i]);
                    filedir = filePaths[i];
                    md5 = MD5HashFromFile(filePaths[i]);
                    richTextBox1.AppendText(path + "\n\n" + filePaths[i]);

                    if (md5array.Contains(md5))
                    {
                        DupGrid.Rows.Add(filename, filedir, md5);
                    }
                    else
                    {
                        WriteToDoc();
                        OrgGrid.Rows.Add(filename, filedir, md5);
                        md5array[i] = md5;
                    }
                    richTextBox1.AppendText(Convert.ToString("\n\nMD5Array: " + md5array[i])+"\n\n");
                   
                }
            }
        }


Og det er så heri den fejler, helt nøjagtigt ved
                    if (md5array.Contains(md5))
Har prøvet at skrive den som
                    if (md5array[].Contains(md5))

Fordi jeg går ud fra at [] må antyde at den skal kigge alle array's i md5array igennem.

Af samme grund har jeg skrevet
                md5array = new string[1000000];
af den simple grund, at den ikke acceptere
                md5array = new string []

Jeg står lidt på bar bund, så vil håbe der er hjælp at hente !! :)

- Kim
Avatar billede sirius Nybegynder
22. september 2009 - 09:53 #1
Da du ikke kender størrelsen på din liste over md5 værdier ville jeg bruge en list i stedet for et array.

så kunne din metode eventuelt se sådan ud:
    public void InsertButton_Click(object sender, EventArgs e)
        {
            List<string> md5list;
            string path = folderBrowse.SelectedPath;
            if (!Directory.Exists(path))
            {
                MessageBox.Show("You must choose a valid path first");
            }
            else
            {
                string[] filePaths = Directory.GetFiles(path, "*.wma",
                                        SearchOption.AllDirectories);

                md5list = new List<string>();
             
                foreach (string file in filePaths)
                {
                    filename = System.IO.Path.GetFileName(file);
                    string md5 = MD5HashFromFile(file);
                    richTextBox1.AppendText(path + "\n\n" + file);

                    if (md5list.Contains(md5))
                    {
                        DupGrid.Rows.Add(filename, file, md5);
                    }
                    else
                    {
                        WriteToDoc();
                        OrgGrid.Rows.Add(filename, file, md5);
                        md5list.Add(md5);
                    }
                    richTextBox1.AppendText("\n\nMD5Array: " + md5 +"\n\n");
                 
                }
            }
        }
Avatar billede Red0z Nybegynder
22. september 2009 - 09:57 #2
Har prøvet, men den skriver stadig altid til OrgGrid.
Avatar billede sirius Nybegynder
22. september 2009 - 10:30 #3
og du er helt sikker på at du har 2 ens md5 værdier, også med store og små bogstaver?
Avatar billede Red0z Nybegynder
22. september 2009 - 10:37 #4
Ganske, det er de samme filer jeg scanner 2 gange, så, det burde det vel være? :)
Avatar billede Red0z Nybegynder
22. september 2009 - 10:39 #5
Og det var så fejlen fandt jeg lige ud af, hvis jeg trykker scan 2 gange, så kører den de samme filer ud 2 gange, hvis jeg har 2 gange de samme filer under én scanning, så fungere det som det skal. Det var lidt af en fejl 40 alligevel. :) Men tusinde mange tak for den hurtige hjælp, prøvede på udvikleren.dk, og det var ingen hjælp. Mange tak! og point til dig!
Avatar billede Red0z Nybegynder
22. september 2009 - 10:42 #6
Og for at være helt noob, hvor trykker jeg for at give dig dine points. :)
Avatar billede sirius Nybegynder
22. september 2009 - 10:46 #7
jeg skal lige give et svar først :-)
Avatar billede Red0z Nybegynder
22. september 2009 - 10:50 #8
Igen, super fedt og tusinde tak for den hurtige hjælp til en grøn koder. :D
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