2012-04-28 10 views
0

私は、ユーザーにコマンドを入力するようにテルネット管理システムをプログラミングしています。だからここネットワークストリームで読み取った文字列を比較します。

私はネットワークストリームをソケットからそれを読むことができますが、私は私が試合を取得することはできません別の文字列を比較するとき、私は正規表現を試してみました。..

は私のコードです:

while (!bit.Contains("\r") && !bit.Contains("\n") && !bit.Contains(".")) 
{ 
    bit = Encoding.ASCII.GetString(buffer); 
    outputString += bit; 
    stream.Read(buffer, 0, 1); 
} 

// Read till user input ENTER 

if (outputString == "$edit") 
    // do something 
+0

は、ユーザーが 'Enter'を襲った後outputString'が含まれているものを見るために'を通じて、デバッグがありますか? – Oded

+0

はい私はデバッグでは、ユーザーが "編集"を入力した場合、それをデバッグしました。 outputStringは "edit"を持っていますが、if文は比較できません。 –

+2

まあ、 "edit"!= "$ edit" '。それらは異なる文字列です。 – Oded

答えて

1

それはあなたがループの最初の行を移動しなければならないことは明らかです:

// init bit variable here 
while (!bit.Contains("\r") && !bit.Contains("\n") && !bit.Contains(".")) 
{ 
    outputString += bit; 
    stream.Read(buffer, 0, 1); 

    bit = Encoding.ASCII.GetString(buffer); 
} 
+0

私はあなたが何を意味するのか理解できませんでしたが、そのコードは私のためには機能しません。 –

+0

ビット変数の初期化方法を教えてください。たとえば、ループの前に 'char bit = 0;'を宣言した場合は、それが問題の原因です。 –

+0

バイト[]バッファ=新しいバイト[1]。 –