2011-12-02 3 views
1

私はテキストに私のデータをexport question-を持って台無しにしている私のテキストファイルがproperly-弾丸が台無しにされて作成されていません。 私は実際の箇条書きまたはバイトの箇条書きを使用しようとしました。動作しません!のC#:テキストファイルにエクスポートするとき、弾丸は、

私が間違っていることについてアドバイスできますか?

public void createFile() 
{ 
    String Body; 
    String TAB = "\t"; 
    String RETURN = "\r\n"; 

    Byte[] buffer = new byte[] { (byte)149 }; 
    string bullet = Encoding.GetEncoding(1252).GetString(buffer); 

    Body = TAB + bullet + TAB + "TEXT1" + RETURN; 
    Body = Body + "•" + TAB + "TEXT2" + RETURN; 
    System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\fname.txt"); 
    file.WriteLine(Body); 
    file.Close(); 
} 
+4

はどのようにしているテキストファイルに正しく弾丸を追加します*ファイルを読む?あなたはUTF-8でそれを書いています - それは何でもUTF-8を使って読んでいますか? –

+2

"messed up"と "does not work"を定義してください。 –

+0

@TomBass:メモ帳は私のためにうまくいきます... –

答えて

0

[OK]を、私は別のエンコーディングを指定するために必要な:

 String correctString ="•"; 
     System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\file.txt", false, Encoding.GetEncoding(1250)); 
     ansiWriter.WriteLine(correctString); 
     ansiWriter.Close(); 
+1

const文字列を宣言するだけですconst string correctString = "\ u2022";あなたはConvert.To方法http://yorktown.cbe.wwu.edu/sandvig/docs/ASCIICodes.aspx – MethodMan

+0

だけでなく、このリンクを見てみます。http:// www.unicode.org/Public/UNIDATA/UnicodeData.txt – MethodMan

+0

ここにあなたが同様に利用することができます別のリンクがあるが利用できる場所 – MethodMan

1

2行目は修正です。

Body = TAB + bullet + TAB + "TEXT1" + RETURN; 
Body += TAB + "•" + TAB + "TEXT2" + RETURN; 
System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\fname.txt"); 
file.WriteLine(Body); 
file.Close(); 
+0

これは単なる構文上の変更であり、何も変わらない。 –

+0

Nope。私はTABを追加しました。 –

+0

申し訳ありませんが、あなたは正しいです。私は新しい眼鏡が必要です。私はそれが問題だったのかどうかは分かりませんが、これまでのところ、アンドリューだけが知っています。 –

1
System.Text.Encoding Encoder = System.Text.ASCIIEncoding.Default; 
Byte[] buffer = new byte[]{(byte)149}; 
string bullet = Encoding.GetEncoding(1252).GetString(buffer); 
//why are you adding the "." bullet back with BODY = BODY + "." ? 

Create a StringBuilder and use the Append Method() 

StringBuilder messageBuilder = new StringBuilder(); //add a capacity if you know the size you want like this for example StringBuilder messageBuilder = new StringBuilder(200); 
messageBuilder.Append("\t\u2022\t"); 
messageBuilder.Append("Text1\r\n"); 

follow the pattern with what you need. 
Thanks 
+0

感謝を弾丸のハードコーディングされた値を使用すべきではありません、追加が正常に動作しますが、それでも作品私はファイルに "•"記号をつけます。 – Andrew

+0

何を意味しているのですか..シンボルをハードコーディングしているのか、またはユニコードを使用していますか? – MethodMan

+0

あなたが使用している正確なコードを書いてください。私は同じ結果を確認/取得しています。ok – MethodMan

2

*私はこれをテストし、それが

String correctString = "\u2022"; 
    System.IO.StreamWriter ansiWriter = new StreamWriter(@"c:\projects\file.txt", false, Encoding.GetEncoding(1250)); 
    ansiWriter.WriteLine(correctString); 
    ansiWriter.Close();    
関連する問題