Forum: Mikrocontroller und Digitale Elektronik Herauslesen eines bestimmten Elements aus der Liste (C#)


von Alan G. (alangraf)


Lesenswert?

Hallo!
Ich komme gerade nicht weiter.
Ich habe eine Liste, nennen wir sie mal "listedLines", die folgendes 
enthält...

BO_ 300 EngSpeedContr: 1 EngineTest
BO_ 100 EngineData: 4 EngineControl
BO_ 201 ABSdata: 3 ABS
BO_ 199 WheelInfoIEEE: 8 ABS
BO_ 200 WheelInfo: 8 ABS

Nun möchte ich aus der Liste, nur die Namen, sprich das zweite Element:
EngSpeedContr
EngineData
ABSdata
WheelInfoIEEE
WheelInfo

herauslesen und in ein File schreiben.

Mir fehlt gerade der Ansatz, weil ich das über "ElementAt(2)" probiert 
habe und es nicht klappt.

Kann mir da jemand was anderes empfehlen?

Gruß

von Martin S. (sirnails)


Lesenswert?

Zeig mal bitte die Definition der Daten.

von c-hater (Gast)


Lesenswert?

Alan G. schrieb:

Nehmen wir mal an, dass diese "Liste" (egal ob wirklich Liste oder 
Array) Elemente vom Typ string beinhaltet, dann spricht man man die 
einzelnen Listeneinträge (also Zeilen) entweder über eine explizite 
Indizierung an oder per Enumerator.

Wenn die Ausgabereihenfolge der einzelnen Einträge keine Rolle spielt 
oder die Standardreihenfolge vom kleinsten zum größten Index passend 
ist, dann kann man einfach einen Enumerator der Liste bzw. des Arrays 
benutzen.

also sowas:

foreach (var line in listedLines)
{
  //hier der Teil, der sich mit der einzelnen Zeile
  //beschäftigt, die hier in der Variablen namens line
  //bereitgestellt wird
}

> die folgendes
> enthält...
>
> BO_ 300 EngSpeedContr: 1 EngineTest
> BO_ 100 EngineData: 4 EngineControl
> BO_ 201 ABSdata: 3 ABS
> BO_ 199 WheelInfoIEEE: 8 ABS
> BO_ 200 WheelInfo: 8 ABS
>
> Nun möchte ich aus der Liste, nur die Namen, sprich das zweite Element:
> EngSpeedContr
> EngineData
> ABSdata
> WheelInfoIEEE
> WheelInfo

Nein. Du willst nicht das zweite Element der Liste herauslösen, sondern 
das zweite (?!) "Element" JEDES Elementes der übergebenen Liste. Damit 
habe ich dir jetzt schonmal gegen meinen Willen die erste Hälfte der 
Lösung deiner Hausaufgabe verraten.

Warum nun "(?!)"?. Hier steckt der zweite Knackpunkt deiner Hausaufgabe. 
Ein String kennt von Hause aus allenfalls Elemente im Sinne der 
einzelnen Zeichen, aus denen er besteht.

Der Sinn der Hausaufgabe dürfte also sein, dass du (mittels der 
Anwendung des vermittelten Wissens) eine eigene Idee entwickelst, wie 
du den Scheiß in "Elemente" zerlegst, die zu deiner Intention passen.

Den Teil darfst du nun doch selber lösen. Tipps dazu:

Der string-Typ selber kennt bereits eine Menge nützlicher Methoden für 
den Zweck, ihn in "Elemente" zu zerlegen. Es gibt aber auch noch 
wesentlich cleverere Sachen zur Stringzerlegung im Namespace 
System.Text.RegularExpressions...

Also alles schon da, du musst es nur noch kompetent benutzen...

von Dr. Sommer (Gast)


Lesenswert?

Martin S. schrieb:
> Zeig mal bitte die Definition der Daten.

Das sind offensichtlich DBC-Dateien. Glaube kaum dass das eine 
Hausaufgabe ist, denn mit sowas hat man an Hochschulen eher weniger zu 
tun...

Du solltest nicht die einzelnen Zeilen der Datei in eine Liste einlesen. 
Besser wäre es, jede einzulesen, und mithilfe der String-Funktionen 
(substr, length, find, usw) in ihre Bestandteile zu zerlegen. Das 
Ergebnis packst du dann in entsprechende Datenstrukturen (Klassen), und 
die packst du dann in eine Liste.

von Alan G. (alangraf)


Lesenswert?

Danke euch für eure Antworten!
Ihr habt mir echt weiter geholfen. Ich habe es hinbekommen. :)

Gruß

von c-hater (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Das sind offensichtlich DBC-Dateien. Glaube kaum dass das eine
> Hausaufgabe ist, denn mit sowas hat man an Hochschulen eher weniger zu
> tun...

Du magst es glauben oder nicht:

Es gibt auch diverse Bildungswege unterhalb des Hochschulniveaus, in 
denen Programmieraufgaben vorkommen und in denen Hausaufgaben erteilt 
werden...

Heute eigentlich alles ab Abitur (ganz sicher) oder Lehre (zumindest für 
alle technisch oder kaufmännisch orientierte Berufe). Wie alt bist du? 
200? Keine Kinder oder Enkel? Oder nur kein Interesse an deren 
Bildungsweg?

von Dr. Sommer (Gast)


Lesenswert?

Was ist denn mit dir los, wurdest du gestern nicht "ran" gelassen?

Welche Hochschule kann sich denn die Arbeit mit den Vector Tools, welche 
ja die DBC-Dateien verwenden, leisten? An Hochschulen werden doch eher 
Alibi-Aufgaben gestellt, statt sinnvoller Arbeit mit echten Daten.
Ich würde viel eher auf Formula Student tippen, denn FS-Teams bekommen 
die Software oft gesponsort. Sich damit freiwillig zu beschäftigen und 
auch mal Fragen zu stellen finde ich schon lobenswert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.