Autor Beitrag
edvazubi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 02.07.19 14:24 
Hallo,

ich will ein Datagridview mit einer CSV Datei befüllen. Da ich die Datei selber aus dem Datagridview im erzeuge, sieht diese etwas seltsam aus. Aus diesem Grund, möchte ich jede 5. Zeile einlesen. Das ist nämlich die, die die richtigen Werte für mein Datagridview enthält. Mein aktueller Code sieht folgendermaßen aus:

ausblenden volle Höhe 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:
34:
private void btnEinfügen_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            using (System.IO.TextReader tr = File.OpenText((@"C:\Brauerei\export.csv")))
            {
                string line;
                //add new list of string arrey
                List<string[]> lststr = new List<string[]>();
                while ((line = tr.ReadLine()) != null)
                {

                    string[] items = line.Trim().Split(',');
                    lststr.Add(items);
                }
                int col = lststr.Max(x => x.Length);
                if (dt.Columns.Count == 0)
                {
                    // Create the data columns for the data table based on the number of items
                    // on the first line of the file
                    for (int i = 0; i < col; i++)
                        dt.Columns.Add(new DataColumn("Column" + i, typeof(string)));
                }
                // loop the list 
                foreach (string[] item in lststr)
                {
                    dt.Rows.Add(item);
                }


            }
            //show it in gridview 
            this.dataGridView1.DataSource = dt;
            
        }


Den Codeschnipsel habe ich selber aus dem Internet. Ich habe auch schon versucht ihn anzupassen, bekomme es aber nicht richtig hin.
edvazubi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 02.07.19 14:36 
Zudem fällt mir auf, dass so meine erste Zeile nicht zum Header wird...
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4456
Erhaltene Danke: 919


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 02.07.19 20:18 
Zitat:
Da ich die Datei selber aus dem Datagridview im erzeuge, sieht diese etwas seltsam aus. Aus diesem Grund, möchte ich jede 5. Zeile einlesen.


Mal so am Rande. Wenn du es selbst gemacht hast ist es keine gute Erklärung warum es schlecht ist und nicht geändert werden kann. Selbst gemacht gibt dir eigentlich alle Möglichkeiten es auch selbst besser zu machen. Wenn du denn schon erkannt hast das es in dieser Form jetzt nicht so ideal ist.


Fremden Code nehmen ist ok. Fremden Code nehmen, nicht verstehen und dann andere Fremde fragen diesen Code zu verbessern ist jetzt auch nicht so die das Ideale vorgehen programmieren zu lernen.
Ich würde dir empfehlen diesen Code zu debuggen. Wenn du das nicht kannst (das debuggen) so solltest du das schnellst möglich lernen.

Vor dem debuggen solltest du schon eine grobe Vorstellungen haben was dieser Code ungefähr tun sollte bzw. was denn die Steps wären die ein Code tun müsste würdest du ihn selbst schreiben. Beim debuggen des Codes solltest du dann deine Erwartungen mit der Wirklichkeit abgleichen. Die Differenz sollte dir soviel über den Code sagen das du ihn selbst verbessern kannst bzw. uns dazu dann konkrete tatsächliche Fragen stellen kannst die wir/ich dann auch gerne beantworten. In der jetzigen Form können wir das nur für dich machen ohne dir tatsächlich zu helfen.

Für diesen Beitrag haben gedankt: edvazubi