Entwickler-Ecke

Basistechnologien - Teilstrings in Datagridview einfügen


marc75 - Sa 02.10.10 16:42
Titel: Teilstrings in Datagridview einfügen
Hallo

habe folgendes Problem und google seid Stunden.

Ich splitte einen String und möchte das die Teilstrings in die Spalten des dgv eingefügt werden.

Wenn ich das versuche zeigt er mir den Fehler : Außerhalb des Arraybereichs an.



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
ArrayList a = new ArrayList();
            //Regex javascript = new Regex("script type=\\\"text/javascript\\\"\\>(?<Brutto>[^\\>]*)", RegexOptions.CultureInvariant | RegexOptions.Compiled);
            //string java = javascript.Match(this.HTML).Value;
            
            Regex trefferliste = new Regex("var cars\\=new Array(.*)([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;]*)?", RegexOptions.CultureInvariant | RegexOptions.Compiled);
            string java1 = trefferliste.Match(this.HTML).Value;
            string array = java1.Replace("var cars=new Array();""");
            
            
            string test = array;
        string[] words = test. Split (';');
        foreach (string word in words)
        {
            a.Add(word);
            //string test1 = array;
           
 
            string[] words1 = word.Split(',');
 
            
            //string bild = words1[0];
            //string anzahlbilder = words1[1];
            //string link = words1[2];
           // string false1 = words1[3];
            //string preis = words1[4];
            //string null1 = words1[5];
            //string leer1 = words1[6];
            //string km = words1[7];
            string bj = words1[8];
            string kw = words1[9];
            //string ps = words1[10];
            //string titel = words1[13];
            dataGridView1.Rows.Add(bj, km);



Vielleicht hat einer ja eine Idee.

Gruß
Marc

Moderiert von user profile iconKha: C#-Tags hinzugefügt


gfoidl - Sa 02.10.10 22:19

Hallo,

siehe auch Crosspost: String splitten und in dataGridView einfügen ? [http://www.mycsharp.de/wbb2/thread.php?postid=3644263]

Verwende auch keine ArrayList sondern die generische Variante davon => List<T>

Die Fehlermeldung
Zitat:
Außerhalb des Arraybereichs an.

ist doch eindeutig. Geh einfach mit dem Debugger Schritt für Schritt durch den Code und schau wo der Fehler auftritt.


mfG Gü


marc75 - So 03.10.10 10:50

Guten Morgen

Habe gerade schrittweise debuggt. Der Fehler kommt bei


C#-Quelltext
1:
 string bj = words1[8];                    



Hab es jetzt so gemacht aber er zeigt immernoch den gleichen Fehler an


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
string test = array;
            string[] words = test.Split(';');
            List<string> a = new List<string>();
            foreach (string word in words)
            {
             

                string[] words1 = word.Split(',');

                a.Add(words1[0]);
                a.Add(words1[1]);
                //string bild = words1[0];
                //string anzahlbilder = words1[1];
                //string link = words1[2];
                // string false1 = words1[3];
                //string preis = words1[4];
                //string null1 = words1[5];
                //string leer1 = words1[6];
                //string km = words1[7];
                //string bj = words1[8];
                //string kw = words1[9];
                //string ps = words1[10];
                //string titel = words1[13];
                
                
}

            foreach (string aa in a)
            {
                dataGridView2.Rows.Add(aa); 
            }

Gruß
Marc

Moderiert von user profile iconKha: C#-Tags hinzugefügt


Kha - So 03.10.10 12:22

Dann solltest du dich als nächstes fragen, warum in words1 nicht das drinsteht, was du erwartest. Wir können das mit den gegebenen Informationen jedenfalls nicht beurteilen.


marc75 - So 03.10.10 12:46

Was für Informationen brauchst du?

Der String lautet:

('http://....jpg','15 Bilder','http://4',false,'1,-','0','','29.986','02/2008','59','80',NOIR','','heber',true,'8163','eier','','',' Metallic','1','2','5',false,'34','hand',false,'',false,'','',false,'4,'1','0,0','0','Euro 4','',false,false)


Kha - So 03.10.10 13:54

Da sind ja eigentlich genügend Kommas drin. Was steht denn nun in words1 und wo tritt welcher Fehler auf?


marc75 - So 03.10.10 14:08

Hallo

in words1 steht der kommplette string. Mit string[] möchte ich diesen teilen und die teilstrings in einzelne Zeilen im datagridview ausgeben.
Ich muss ja jedem Teilstring einen wert zuweisen um ihn dann in einer bestimmen Spalte im DGV anzuzeigen.

Im Prinzip fängt das bei mir so an, das ich erstmal im html ein Javascript Array rausfische und sie durch ein ; trenne. Dann hätte ich eine liste mit

car[0]....,......,....,....,.....,....,
car[1]
u.s.w.

Als nächstes möchte ich car[0] wieder mit , trennen und die entstandenen Teile in das DGV eintragen. Neuer String = neue Zeile.

Gruß
marc


marc75 - So 03.10.10 18:46

hat keiner eine Idee???

Gruß
Marc


IsNull - Mo 04.10.10 16:18

Dein Split scheint korrekt zu sein, das einzige was falsch sein könnte ist dass in 'word' nicht das steht was du erwartest - aber debuggen musst du schon selber.

Die Fehlermeldung ist ganz klar, und du kannst ja die Arrays im Debugger anschauen - also siehst du genau, was da drin steht, und wo eben was fehlt...