2016-06-11 4 views
1

古いToontown Onlineで使用されている特定の種類のファイル用のリーダーを作成しようとしています。そのa patcher.ver。私はそれがホストされているページから辞書で変数を読み込もうとしましたが、それを動作させるように見えません!リモートファイルから変数へ(C#)

WebRequest request = WebRequest.Create(Form1.patcherBaseURL + "/patcher.ver"); 
WebResponse response = request.GetResponse(); 
Stream data = response.GetResponseStream(); 
string html = String.Empty; 
using (StreamReader sr = new StreamReader(data)) 
{ 
    html = sr.ReadToEnd(); 
    var dic = File.ReadAllLines(html) 
     .Select(l => l.Split(new[] { '=' })) 
     .ToDictionary(s => s[0].Trim(), s => s[1].Trim()); 
    string PatchVerStrServer = dic["PATCHER_VERSION_STRING_SERVER"]; 

これは私が使用しようとしていたコードです。しかし、私は得続ける例外"illegal characters in path"

私は読んしようとしていたファイルは次の場所にあります。あなたが助けることができる場合http://dolimg.com/toontown/uk/patcher.ver

ありがとう!私はC#の初心者です。これに関連するものは何も見つかりませんでした。

+1

「html」の値は何ですか?実際にファイル名ですか? –

+1

また、おそらく 'html'は' http:// dolimg.com/toontown/uk/patcher.ver'の内容です。さて、それはファイル名ではありません - あなたはファイル名として*使用しようとしていますか?これが 'File.ReadAllLines'の動作です。 –

+0

私は、辞書に変数を追加するために、そのコードをダウンロードしてpatcher.verファイルを読んでいます。 htmlの値は、patcher.verファイルから取得したデータです。 – null

答えて

1

下記のコードを試してください。 htmlにはコメントアウトされている行がいくつかありますので、これらの行をスキップする場所を使用しました。

WebRequest request = WebRequest.Create(Form1.patcherBaseURL + "/patcher.ver"); 
WebResponse response = request.GetResponse(); 
Stream data = response.GetResponseStream(); 
string html = String.Empty; 
using (StreamReader sr = new StreamReader(data)) 
{ 
    html = sr.ReadToEnd(); 
    var dic = html 
     .Split (new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries) 
     .Where (line => !line.StartsWith("#"))  // Skip commented out lines 
     .Select(line => line.Split(new[] { '=' }, 2)) // Beware: some values have spaces 
     .ToDictionary(token => token[0].Trim(), token => token[1].Trim()); 

    string patchVerStrServer = dic["PATCHER_VERSION_STRING_SERVER"]; 
} 
+0

実際には、私はモジュールからForm1に変数を送る方法を見つけなければなりません。ありがとう! – null

+0

私はあなたのコードが問題ではないことはほとんど確信していますが、モジュールからForm1に渡してみると動作しませんし、空の文字列を返す "" ..私がdo not do get get 。しかし、私は文字列を返す方法を知らない...あなたがそれを助けることができるなら、私は大いに感謝されるだろう!私はどこでも探していますが、モジュールとして持っている理由を見つけることはできません。 wont work .. – null

+0

表示されているフォームのインスタンスを使用して、変数をフォームに渡す必要があります。次の投稿で私の2つのフォームプロジェクトを参照してください:http://stackoverflow.com/questions/36251695/c-sharp-reference-two-forms – jdweng

関連する問題