Laden...

Strings splitten und speichern

Erstellt von Chris2293 vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.243 Views
C
Chris2293 Themenstarter:in
2 Beiträge seit 2017
vor 7 Jahren
Strings splitten und speichern

Hi, ich komme bei folgendem Problem nicht weiter. Vielleicht kann jemand mir eben helfen.


namespace ConsoleApplication1
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            LoadAndReadFile(); // Erste Funktion, die eine Textdatei einließt und die darin
                                  //enthaltenen Strings in der Liste lines hinterlegt
            SplitAndRead();    // Zweite Funktion, die die Zeilen splitted und die Zeilen 3 und 4
                               // diesmal in der Liste lines2 speichern soll             
        }
    }
static List<string> lines = new List<string>();
static List<string> lines2 = new List<string>();

static void SplitAndRead()
{
    
       //Hier fehlt evtl. eine Klasse 


    for (int i = 0; i < lines.Count; i++)
    {
        Console.WriteLine(lines[i]);   // Zeigt den eingelesenen String aus Funktion 1 an, bestehend aus einer Zeile
                                       // Dieser String wird nun gesplitted in mehrere Zeilen
                                       //Beispiel für einen String: lines[0] = ("123AaBb Cc,10-10:10")
        string Zeile = lines[i];     // Dem String Zeile wird die erste eingelesene Zeile zugewiesen (s. Beispiel)
        char[] SplitChars = { ' ', ',', '-' };    //Zeichen, bei denen gesplitted werden soll
        string[] NeuerString = Zeile.Split(SplitChars); 

        foreach (string SplitStrings in NeuerString)
        {
                  Console.WriteLine(SplitStrings);   //Ausgabe: 123AaBb
                                                                Cc
                                                                10
                                                                10:10

            lines2[i] = string.Format("{0};{1}",???? ); // Hier soll z.B. dann Zeile 3 und 4 gespeichert werden
                                                        // Also 10 und 10:10, nicht aber die anderen Zeilen
                                                        // Die Länge der Zeilen variiert von String zu String
                                                        // Die Position aber nicht. Ich möchte immer die selben 
                                                        // Zeilen speichern
            

        }
        
    }


P
441 Beiträge seit 2014
vor 7 Jahren

Hi,

ohne es zu probieren tippe ich mal - so wie du es dort reinkopiert hast kompiliert es nicht.
Sowohl lines, lines2, als auch SplitAndRead() gehören zu keiner Klasse.

Schau dir einmal an, was der Unterschied zwischen einem Array und eine Liste ist, das sieht aus, als würdest du die Liste wie ein Array verwenden. Außerdem würdest du dir vermutlich Einträge überschreiben so wie du es dort implementiert hast.

Was ist denn das Kriterium, dass etwas in der Liste lines2 gespeichert werden soll?
Wenn dort Zeile 3 und 4 gespeichert werden soll müsstest du einfach ausserhalb der foreach-Schleife folgendes machen:


lines2.Add($"{NeuerString[2]};{NeuerString[3]}");

(Natürlich vorher prüfen ob 2 und 3 Elemente von NeuerString sind!)
Das ist aber nicht was du vorhast oder?

5.658 Beiträge seit 2006
vor 7 Jahren

Weeks of programming can save you hours of planning

2.207 Beiträge seit 2011
vor 7 Jahren

Hallo Chris2293,

bitte mach es uns einfacher dir zu helfen und poste deine Fragen nicht im Code.

Weiter:

Hier fehlt evtl. eine Klasse

Fehlt dort eine Klasse? Oder nicht? Bitte, wenn du uns schon kompletten Code gibst, schau, dass er kompiliert. [Hinweis] Wie poste ich richtig?

Schau mit dem bereits erwähnten [Artikel] Debugger: Wie verwende ich den von Visual Studio? nach, Schritt für Schritt, was dein Programm macht.

Schau dir den Namespace https://msdn.microsoft.com/en-us/library/system.collections.generic(v=vs.110).aspx an und https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx .

Gruss

Coffeebean