Autor Beitrag
Goordon
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 25.01.09 00:22 
Guten Abend.

Ich bin noch neuling im programmieren mit C# und habe mal eine Frage.
Es geht um mein Tool "toolboQs", welches mehrere Informationen aus dem Pc Ausliest ( Prozessor, Geschwindigkeit, etc. )

Jetzt ergibt sich folgendes Problem:
Mit dem StreamWriter schreibe ich die Werte in eine .txt Datei um sie später zu drucken, oder um sie sich übersichtlich anzeigen zu lassen.

Das Problem ist aber das das CD-Laufwerk mehrere werte hat ( Name, Laufwerksbuchstabe, Status... )

Bisher habe ich mit dem StreamWriter immer nur einzelne Werte schreiben müssen

z.B.:

ausblenden C#-Quelltext
1:
2:
foreach (string Item in InstPrintersList.Items)
                myWriter.WriteLine("Printer(s): " + Item);


Folgendes Problem ergibt sich:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
foreach (string Item in CDROMLIST.Items)
            {
                foreach (string Item2 in CDRomListExtInfo2.Items)
                {
                    myWriter.WriteLine("CDRom: " + Item + " || DriveLetter: " + Item2);
                }
            }


Die Werte werden mehrfach geschrieben und die Ausgabe sieht dann wie folgt aus:

CDRom: TSSTcorp CDDVDW SH-S202N ATA Device || DriveLetter: E:
CDRom: TSSTcorp CDDVDW SH-S202N ATA Device || DriveLetter: G:
CDRom: HQ4523Q VWT514K SCSI CdRom Device || DriveLetter: E:
CDRom: HQ4523Q VWT514K SCSI CdRom Device || DriveLetter: G:

Jede denkbare Kombination wird somit aufgelistet ( bei 3 Werten sind das dann 8 )

Weiss jemand rat?


Danke im Vorraus, Goordon
-> Mein erster Post bei euch.

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 25.01.09 02:06 
Hallo und :welcome: im Forum!

Du hast die Infos zu einem Laufwerk in mehreren Listen (ListBoxen?)?
Dann bietet sich doch eine normale for-Schleife statt foreach an. foreach geht ja gerade jeweils alle durch bei jedem Item der ersten Liste.

Mit for greifst du in jeder Liste auf den Eintrag 0, 1, usw. nacheinander zu:
ausblenden C#-Quelltext
1:
2:
3:
4:
            for (int i = 0; i < CDROMLIST.Items.Length; i++)
            {
                myWriter.WriteLine("CDRom: " + CDROMLIST.Items[i].ToString() + " || DriveLetter: " + CDRomListExtInfo2.Items[i].ToString());
            }
Goordon Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 25.01.09 13:39 
Hi.

Ich wollte nurnoch ebend was berrichtigen.

ausblenden C#-Quelltext
1:
2:
3:
4:
            for (int i = 0; i < CDROMLIST.Items.Length; i++) // <-- Lenght geht nicht
            {
                myWriter.WriteLine("CDRom: " + CDROMLIST.Items[i].ToString() + " || DriveLetter: " + CDRomListExtInfo2.Items[i].ToString());
            }


Lenght geht nicht

CDROMLIST.Items.Count wäre es gewesen :P.

Aber ich habs ja rausgefunden, war nicht allzu schwer. Danke für die antwort ;)

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