2017-01-30 11 views
-2

外部テキストファイルから各パーツラインを読み込んで解析し、パーツリストに追加するのが最善の方法です。以下にコードを示します。行を読み込んで外部テキストファイルからリストに追加するc#

List<Part> parts = new List<Part>(); 

    // Add parts to the list. 
    parts.Add(new Part() {PartName = "crank arm", PartId = 1234}); 
    parts.Add(new Part() { PartName = "chain ring", PartId = 1334 }); 
    parts.Add(new Part() { PartName = "regular seat", PartId = 1434 }); 
    parts.Add(new Part() { PartName = "banana seat", PartId = 1444 }); 
    parts.Add(new Part() { PartName = "cassette", PartId = 1534 }); 
    parts.Add(new Part() { PartName = "shift lever", PartId = 1634 }); 

これは私がやろうとしていることですが、動作しません。

{ 
    var fileStream = new FileStream(@"~App_Data/file.text", FileMode.Open, FileAccess.Read); 
    using (var streamReader = new StreamReader(fileStream, Encoding.UTF8)) 
     { 
     string line; 
     while ((line = streamReader.ReadLine()) != null) { 

      parts.Add(new Part() { PartName = "", PartId= ""}); 

     } 
    } 

て、partnameとpartidがsplitedどのように単純なテキストファイルのサンプル

new Part() {PartName = "crank arm", PartId = 1234}; 
new Part() { PartName = "chain ring", PartId = 1334 }; 
new Part() { PartName = "regular seat", PartId = 1434 }; 
new Part() { PartName = "banana seat", PartId = 1444 }; 
+0

?カンマで? –

+3

file.textファイルにデータのサンプルを入力してください。 –

+0

サンプルテキストファイルが追加されました – user2178940

答えて

0
string lines = System.IO.File.ReadAllLines(MapPath(@"~/App_Data/file.text"); 
for(int i=0; i<lines.Lemgth; i++) 
{ 
    Match m = Regex.Match(lines[i],"\{\s*PartName\s*=\s*\"([^\"]*)"\s*,\s*PartId\s*=\s*(\d+)\s*\}"); 
    if(m.Success) parts.Add(new Part(){PartName = m.Groups[1].Value, PartId = int.Parse(m.Groups[2].Value)}); 
} 
0
 //references 
     using System.IO; 
     using System.Text.RegularExpressions; 


     //code that goes in the method 
     List<Part> parts = new List<Part>(); 
     foreach (string line in File.ReadAllLines(@"~App_Data/file.text")) 
     { 
      parts.Add(new Part() 
      { 
       PartName = line.Split('"')[1], 
       PartId = Convert.ToInt32(Regex.Match(line, @"\d+").Value) 
      }); 
     } 
関連する問題