Entwickler-Ecke

C# - Die Sprache - Datenaufbereitung in C# !


Matti - Di 10.10.06 12:09
Titel: Datenaufbereitung in C# !
Moin,

habe den Auftrag ein Pro zu schreiben das aus einer Liste von vielen Werten die durch Semikolon getrennt sind ...

Beispiel:

Maus; 21432-MAS; 15; ja;

diese in eine andere Reihnfolge zu bringen.

Beispiel:

21432-MAS; Maus; ja; 15;

Da ich erst neu bei C# bin hab ich da no keine konkreten Vorstellungen. Kann mich dunkel erinnern das man in Unix, Scripte schreiben konnte wo man mit Filezip - Seperatoren (oder so ähnlich) gearbeitet hat. Vielleicht funkts ja in C# auch ...

mfg, Matti


Christian S. - Di 10.10.06 12:23

Hallo!

Wo genau liegt denn jetzt Dein Problem? Also welchen Teil der Aufgabe bekommst Du nicht hin?

Grüße
Christian


Matti - Mi 11.10.06 14:15

Hey ho,

konnte mein pro was ich ni richtig erläutert hatte in eigenrecherche lösen ... also thread kann geschlossen bzw. gelöscht werden !!

mfg, matti

ps: ich komm bestimmt zurück !!


gozza01 - Mo 16.10.06 17:57
Titel: und noch einmal

C#-Quelltext
1:
2:
3:
4:
5:
6:
string strQuelle = "1;2;3;4;5";
string[] split = strQuelle.Split(';');
Int16 iAnzahl = (Int16)(split.Length - 1);
string strNeu = split[4] + ";" + split[3]+ ";" + split[2]+ ";" + split[1]+ ";" + split[0];

Console.WriteLine(strQuelle + " -> " + strNeu + " Anzahl  \';\' = " + iAnzahl.ToString() );


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Matti - Mi 18.10.06 00:32

Hey,

danke hat super funktioniert und gleich Einsatz gesunden ;-) ... Steh nur nun schon wieder vor dem nächsten Problem. Will anhand einer ähnlichen Schleife aus einer Liste von Daten nach einem bestimmten String suchen.

Das Problem bei meinem Quelltext ist das er mir die Zeilennummer ausgibt jedoch von allen bis er den Suchbegriff gefunden wurde !!


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Console.WriteLine("Geben Sie an nach was Sie suchen wollen:");
                string option = Console.ReadLine();

                int index = 0;
                int durchlaeufe = 1;
                for (int i = 0; i < anzahl + 1; i++)
                {
                    Console.WriteLine(durchlaeufe);
                    do
                    {
                        index = listeneu[i].IndexOf(option);
                        durchlaeufe += 1;
                    } while (index != -1);
                }


In listeneu[] steht folgendes:

nein;25,00;Tastatur;48345-GFE-3
ja;15,00;Maus;3725673-VFG-2
nein;100,00;Monitor;3246237-QWS-6
ja;75,00;Drucker;347563-DAY-1

Wenn man dann beispielsweise nach Drucker sucht erscheint:
1
2
3
4

Will aber nur die 4 !!

PS: Bitte lacht nicht über meinen Quelltext :D ...

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


JüTho - Mi 18.10.06 09:43

Hallo Matti,

schau doch genau hin, wo Deine Ausgabezeile steht: nämlich am Anfang der for-Schleife, bevor Du Deinen Such-/Vergleichsvorgang startest. Du musst sie hinter das Ende der for-Schleife setzen.

Übrigens: Versuche einmal, die Funktion Contains() zu benutzen; dann kannst Du auch Ende-Prüfungen vereinfachen.

Gruß Jürgen


Matti - Mi 18.10.06 10:44

Morgen,

wenn ich die Ausgabe hinter die Vorschleife bringe erzeugt sie nix mehr sondern hängt sich auf... Wenn ich sie in die unter die do while schleife schreibe


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
for (int i = 0; i < anzahl + 1; i++)
{
 do
 {
  index = listeneu[i].IndexOf(option);
  durchlaeufe += 1;
 } while (index != -1);
 Console.WriteLine(durchlaeufe);
}


erzeugt sie wieder die wilde Ausgabe + das er den ersten Datensatz nicht erfaßt !! :autsch:


Matti - Mi 18.10.06 12:53

Sorry das ich euch belästigt hab... Habs selber hinbekommen warum fällt mir das erst ein wenn ich gepostet habe.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
for (int i = 0; i < anzahl + 1; i++)
                {
                    index = listeneu[i].IndexOf(option);
                    zeilenzaehler += 1;
                    if (index != -1)
                    {
                        Console.WriteLine(zeilenzaehler);

                        Console.WriteLine(listeneu[zeilenzaehler - 1]);
                    }
                }