2017-10-19 4 views
0

Ich habe versucht, eine Zeichenfolge aus der Textdatei Zeile für Zeile zu lesen, aber ich bekomme diesen Fehler, siehe meinen Code bitte. gibt es einen anderen Ansatz für das Lesen einer Zeichenfolge Zeile für Zeile oder eine Lösung für diesen Fehler? Die Datei wird in UTF8 gespeichert.Fehler: ungültiges Zeichen im Pfad File.ReadLine

Link für Dateiinhalt: https://shrib.com/#MHVN4JhCgKStecY7Q4ei

public Games RetornarGames(string arquivo) 
{ 
    try 
    { 
     Game game = new Game(); 
     Games games = new Games(); 

     foreach (string linha in File.ReadAllLines(arquivo, Encoding.UTF8)) 
     { 
      Match action = regexAction.Match(linha); 

      switch (action.Value) 
      { 
       case "InitGame": 
        game = InitGame(); 
        games.ListGames.Add(game); 
        break; 
       case "ClientConnect": 
        ClientConnect(game, linha); 
        break; 
       case "ClientUserinfoChanged": 
        ClientUserInfoChanged(game, linha); 
        break; 

       case "Kill": 
        Kill(game, linha); 
        break;  
       default: 
        break; 
      } 
     } 

     return games; 
    } 
    catch (Exception ex) 
    {  
     throw; 
    } 
} 
+2

Was ist der Wert von 'arquivo'? Der Fehler besagt, dass ein ungültiges Pfadzeichen vorliegt. –

+0

Welche Codezeile löst die Ausnahme aus? Wenn es eine bestimmte Zeile in der Datei ist, welche Zeile ist es? Ist die Datei wirklich im UTF8-Format? _ (FWIW, Sie können diesen 'catch' Block entfernen, der einfach erneut springt - er tut nichts für Sie.) _ –

+0

Aktualisiert, der Fehler ist in der ersten Zeile aufgetreten. –

Antwort

0

Ich änderte File.ReadLine für String und arbeitet, danke!

StringReader sr = new StringReader(arquivo); 
       while (true) 
       { 
        string linha = sr.ReadLine(); 

        if (linha != null) 
        { 
         Match action = regexAction.Match(linha); 
         switch (action.Value) 
         { 

          case "InitGame": 
           game = InitGame(); 
           games.ListGames.Add(game); 
           break; 

          case "ClientConnect": 
           ClientConnect(game, linha); 
           break; 

          case "ClientUserinfoChanged": 
           ClientUserInfoChanged(game, linha); 
           break; 

          case "Kill": 
           Kill(game, linha); 
           break; 

          default: 
           break; 
         } 
        } 
        else 
        { 
         break; 
        } 
       } 

       return games; 
      } 
      catch (Exception ex) 
      { 

       throw; 
      } 
     } 
Verwandte Themen