2011-06-27 4 views
0

を内のファイル:編集.BATはすべての私のコードの最初の、まあC#

protected void Button2_Click1(object sender, EventArgs e) 
{ 
    string batname = edit.SelectedValue; 
    StreamWriter sw = new StreamWriter("D:\\MPSite-Serv\\bats\\" + batname); 

    string theedit = batedit.Text; 
    sw.WriteLine(theedit); 
    sw.Flush(); 
} 

私はbutton2をクリックするとbatファイルにテキストのすべてを書いてみる、 私はこの結果 バットを取得しますファイルには以下が含まれます:

System.Web.UI.WebControls.TextBox 

なぜですか?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.IO; 
using System.Diagnostics; 
+0

あなたは「このRESUを取得するとはどういう意味ですかlt "?あなたはその価値をどこから得るのですか? '編集'とは何ですか? –

+0

が.batにあり、「編集」を押すと表示されます。 –

+0

は 'batedit'テキストボックスですか? – zsalzbank

答えて

0

http://msdn.microsoft.com/en-us/library/system.io.streamwriter.aspx#Y2863

問題は単純です:sw.writelineは、文字列を期待しています。 aformentioned .ToString()に変換されるテキストオブジェクトを送信しています。これは、メソッドToString()

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.aspx

にリストをスクロールダウン...あなたはWebControls.TextBoxのドキュメントを見れば、あなたのラインが

sw.WriteLine(theedit.ToString()); 

に、緩く、翻訳さ意味は何あなたが...行うために必要なのは(私はあなたがちょうどそれをテキストボックスから生の文字列を与えることができると仮定しますが)一度それを1つの文字列を与えることである。

using System.IO; 

    namespace String_Writer 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       string batname = "test.txt"; 
       string theedit = "Testing one two three four\n\nfive six seven eight."; 
       using(StreamWriter sw = File.CreateText("C:\\Users\\Kriis\\Desktop\\" + batname)) 
       { 
        using (StringReader reader = new StringReader(theedit)) 
        { 
         string line = string.Empty; 
         do 
         { 
          line = reader.ReadLine(); 
          if (line != null) 
          { 
           sw.WriteLine(line); 
          } 

         } while (line != null); 
        } 
       } 
      } 
     } 
    } 
3

をあなたはあなたのコードはかなりのようなものに見えると信じて私をリードテキストボックスのタイプ名取得されています:

を、それは場合に役立ちます

私は、次のステートメントのすべてを使用しています

sw.WriteLine(batedit); 

e Textプロパティの内容ではなく、ファイルに書き込まれるテキストボックスオブジェクト自体を送信しています。暗黙的にToStringメソッドが呼び出されます。このメソッドは、デフォルトでオブジェクトの型名を返します。

また、StreamWriterを正しく終了していないため、使用する際に問題が発生する可能性があります。 Closeメソッドに電話する必要があります。StreamWriterを閉じる前にFlushに電話する必要はありません。あるいは、StreamWriterusingブロックに置くことができます。ブロックは自動的に破棄され、ブロックされます。

+0

文字列batname = edit.SelectedValue; StreamWriter sw =新しいStreamWriter( "D:\\ MPSite-Serv \\ bats \\" + batname); 文字列theedit = batedit.Text; sw.WriteLine(theedit.ToString()); sw.Close(); 私はこれを行いましたが、何もしません。 私は黒いEDITを取得します。 何もない、 –

+0

それを残して、:)。非常に! –