2016-04-22 10 views
0

Ich bin auf der Suche nach einer Lösung für dieses Problem, mit dem ich eine harte Zeit habe: Ich versuche, Text aus einer TXT-Datei mit diesem Code zu lesen. Die Zeile Monsters[i, j] = string(col.Split(' ')); gibt mir Schwierigkeiten, mir zu sagen, dass die Zeichenfolge ein ungültiger Ausdruck ist. Die Datei besteht aus einer Liste von Zeichen und ihren Attributen, die durch Leerzeichen getrennt sind. Danke im Voraus!Zyklus durch Textdatei, um Zeichenfolge zu erfassen

String input = File.ReadAllText(@"CharacterAttributes.txt"); 

int a = 0, b = 0; 
string[,] Monsters = new string[24,11]; 
foreach (var row in input.Split('\n')) 
{ 
    b = 0; 
    foreach (var col in row.Trim().Split(' ')) 
    { 
     Monsters[a, b] = string(col.Split(' ')); 
     b++; 
    } 
    b++; 
} 
+0

Verwenden Sie im Split die Option RemoveEmptyEntries. Sie haben wahrscheinlich mehr als einen Platz zwischen den Spalten, die leere ganze Elemente erstellen. – jdweng

+0

Was ist die Anweisungszeichenfolge (...)? So etwas gibt es in C# nicht. – chameleon86

+0

Danke, @jdweng, ich werde das tun. Ich habe Tabs zwischen meinen Attributen. – DriverOne

Antwort

3

Von dem, was es mir scheint:

  • haben Sie getrennt bereits jedes Zeichen von Zeile: var row in input.Split('\n')
  • Du hast bereits jedes Attribut für das Zeichen mit Leerzeichen trennen: var col in row.Trim().Split(' ')

Also, wenn wir zu Monsters[a,b] = string(col.Split(' ')) kommen (was übrigens string() ist ungültige Syntax), sehe ich keinen Grund zu teilen weiter, und was Sie eigentlich tun möchten, ist den Wert von col zu Ihrem Monsters[a,b] zu speichern, unter der Annahme a ist jedes Zeichen, und b ist das Attribut für dieses Zeichen.

Monsters[a,b] = col; kann gut sein, was Sie suchen.

+0

Danke! Ich bin sehr neu und tendiere dazu, Dinge zu komplizieren. Ich sah die ungültige Syntax, die die Ursache meiner Verwirrung war. Arrays bringen mich in Schleifen. Upvoted. Am hilfreichsten. – DriverOne

Verwandte Themen