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
}
}
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?
Hi Chris2293,
hier gibt es ein paar Links, die dir den Einstieg in C# erleichtern:
[FAQ] Wie finde ich den Einstieg in C#?
[Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
[Artikel] Debugger: Wie verwende ich den von Visual Studio?
Weeks of programming can save you hours of planning
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck