2012-01-23 7 views
0

wp7でlinqを使用してテキストファイルを読むことは可能ですか?私の要件は、私は以下のテキストファイルの内容を読んでリストを形成する必要がある、どのように私はWindowsの携帯電話でこれを実装することができます。テキストファイルの形式は次のとおりです。Windows Phone 7のLINQ to TextFile

Game::Cricket::England::Pakistan 
Game::Football::England::France 
Game::Cricket::Pakistan::Australia 

wp7ではLinqからテキストファイルが不可能な場合。次に、私に別の選択肢を提案してください。あなたはいつも単なるテキストとしてファイルをロードし、上でそれを分割することができ

答えて

0

私のテキストフォーマットに基づいて回答は非常にかなりある「::」

using System.IO; 

StreamReader streamReader = new StreamReader(filePath); 
string text = streamReader.ReadToEnd(); 
streamReader.Close(); 
foreach(string s in text.Split("\n")) 
{ 
string[] splitstring = s.Split("::"); 
} 
+0

あなたは、コードを発揮することができます私のテキストデータで? –

1

いいえ、ありなし内蔵のLINQのためのサポート.NET(デスクトップ、または電話)のテキストに。しかし、むしろ幻想LINQのツーCSVライブラリ一切CodeProjectのはありません:これはほぼ確実WP7上で動作します

http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library

。デリミタを指定することができるので、ダブルコロンで動作するはずです。私は、次のアプローチを示唆し

+0

テキストファイルを解析する他の方法がありますか。著作権の問題のため、私は現在サードパーティのライブラリを使用できません。それは当社のルールに反するものです。 –

+0

それを読んでそれを自分で解析してください! ..またはちょうどそのプロジェクトのソースコードを見て、かなり類似したものを作成してください;-) – ColinE

+1

私は答えを投稿しますが、それはサードパーティのソースでもあり、 "著作権問題" – ctacke

2

...

は、あなたのGameDetailオブジェクトを保持するクラスを作成し、文字列パラメータを取るコンストラクタを定義します。このコンストラクタは、個々の行を解析できます。

public class GameDetail 
{ 
    public string Type { get; set; } 
    public string Team1 { get; set; } 
    public string Team2 { get; set; } 

    public GameDetail(string input) 
    { 
     var parts = input.Split(new string[] { "::" }, StringSplitOptions.None); 
     if(parts.Length != 4) throw new ArgumentException("Invalid input string"); 
     Type = parts[1]; 
     Team1 = parts[2]; 
     Team2 = parts[3]; 
    } 
} 

ファイルの各行を読んで、そしてGameDetails

List<GameDetail>ReadFile(string filename) 
{ 
    var stream = File.OpenRead(filename); 
    var allData = new List<GameDetail>(); 
    using (StreamReader reader = new StreamReader(stream)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 
      allData.Add(new GameDetail(line)); 
     } 
    } 
    return allData; 
} 

NOTEのコレクションに追加するリーダー・メソッドを作成します - テストされていない...

関連する問題