Entwickler-Ecke

Basistechnologien - Ausgabe .txt


sebastian1234 - Di 13.05.14 19:11
Titel: Ausgabe .txt
Nabend zusammen,

folgende Ausgabe in einer .txt Datei sieht im Moment so aus...

1;A
2;B,C,D,E

Sie soll aber ab jetzt so aussehen...

1;A
2;B
2;C
2;D
2;E

int i = 1; bestimmt die erste Zahl vor dem ;!

Hinter index <> Indexzuordnung (objs) verbirgt sich...

0 - A
1 - B
2 - C
3 - D
4 - E

Folgende Methode führt die Ausgabe durch


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
void DateiAusgabe(List<List<int>> indexZuordnung)
        {
            StreamWriter file = new System.IO.StreamWriter("c:\\Clusteranalyse.txt");
            int i = 1;

            foreach (List<int> index in indexZuordnung)
            {
                String[] objs = new String[index.Count];
                int j = 0;

                foreach (int v in index)
                {
                    objs[j++] = this.KundenNamen[v];
                    
                }
                
                file.WriteLine(i++ + ";" + String.Join(",", objs));
            }

            file.Close();
        }


Was muss umgestellt werden damit mein gewünschtes SOLL Ergebnis herauskommt?

Viele Grüße!


Ralf Jansen - Di 13.05.14 19:20

Schieb den WriteLine in die innere Schleife. Sollte dann vermutlich so aussehen.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
foreach (int v in index)
{
    objs[j] = this.KundenNamen[v];
    file.WriteLine(i + ";" + objs[j])); 
    j++;
}
i++;



Wobei ich das doof finde eine Variable für einen Index zu definieren aber danach einen foreach zu machen.
Dann kann man auch gleich eine simple for Schleife nehmen und man bekommt den Index geschenkt.


sebastian1234 - Mi 14.05.14 17:05

Okay danke das hat wunderbar funktioniert!

Ich habe die Methode nun weiter angepasst, da sie nicht als .txt ausgegeben werden soll sondern als .xls!


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:
  void ExcelAusgabe(List<List<int>> indexZuordnung)
        {
            Microsoft.Office.Interop.Excel.Application xls = new Microsoft.Office.Interop.Excel.Application();
            Workbook wb = xls.Workbooks.Add(XlSheetType.xlWorksheet); 
            Worksheet ws = (Worksheet)xls.ActiveSheet;


            // Festen Speicherplatz definieren!!! unter "c:\\Clusteranalyse.xls"

            xls.Visible = true;
            
            ws.Cells[11] = "Cluster";
            ws.Cells[12] = "Objekt";
            int i = 1;
            int y = 2;
            foreach (List<int> index in indexZuordnung)
            {
                String[] objs = new String[index.Count];
                int j = 0;
                
                foreach (int v in index)
                {
                    objs[j] = this.KundenNamen[v];
                    
                    ws.Cells[y, 1] = i;
                    ws.Cells[y, 2] = objs[j];
                    y++;
                    j++;
                }
                i++;
                
                
            }


Wie muss ich nun die Methode umbauen, damit die .xls Datei unter dem Verzeichnis "c:\\Clusteranalyse.xls" abgespeichert wird?

Viele Grüße!!!


Christian S. - Mi 14.05.14 17:22

Hallo,

bitte erstelle für eine neue Frage auch einen neuen Thread. Das Arbeiten mit Office-Dokumenten ist dann doch was anderes, als das Ausgeben in eine Text-Datei. ;-)

Viele Grüße
Christian