2012-05-10 14 views
-1

メモ帳Text.txtには、 "Terminal"というフォントでのみ読み取ることができるデータがあるとします。どのようにC#で実装するには?メモ帳の内容は、フォントを「ターミナル」に設定した場合にのみ表示されます。さもなければ私は箱だけを見ることができた。 C#は "ターミナル"フォントを使用してコンテンツを読む必要があり、BOXではなく正確なデータを得ることができます。 UTF8で試しました。同じ応答。C#を使用して特定のフォントでテキストデータを読み取る方法は?

メモ帳の内容をここに書き込んでも、ハイフンが表示されます。

EG:

テキストがある - しかし、イムは、ハイフンを意味しません。実際の言葉はnの上に二重点です。メモ帳のTerminalフォントでしか見ることができません。

enter image description here

+0

さらに詳しい情報が必要です – CyprUS

+1

何が欲しいですか?テキストデータはフォントとは関係ありません。レンダリング/印刷などでデータを別のフォントに表示することができます – Tilak

+0

テキストを表示するアプリケーションと同じフォントを使用します。 – animaonline

答えて

2

あなたの問題は、おそらくテキストファイルのエンコーディング(コードページ)は、あなたの質問にはいないような答えがあると思います。 テキストファイルはどの言語で書かれていますか? Aが入力された場合、私は、シンボル上記二重点を表示する必要があり、辞書に追加した後

System.Text.Encoding GreekEncoding = System.Text.Encoding.GetEncoding(1253); 
System.IO.StreamReader sr = new StreamReader(@"c:\test.txt", GreekEncoding); 
System.Diagnostics.Debug.WriteLine(sr.ReadLine()); 
sr.Close(); 
sr.Dispose(); 
+0

私は完璧な解決策を得られませんでしたが、あなたのエンコーディングのアイデアは実験とは異なる考えを与えました。アプリケーションのテキストボックスに異なる数字が表示されます。これらの数字をコピーしてメモ帳に貼り付けると、私が望む完璧な結果が得られます。上記の手法(テキストボックスからデータを取得し、メモ帳に貼り付ける)をエンコードすることもできませんでした。だから感謝@svenv! –

+0

そして私はどのように私はこれを取り除いたか説明した。 –

5

.txt filesに保存されて何のfont情報は実際にはありません。

C#で同じフォントを使用するだけで、.txtファイルに表示されます。

+0

"Terminal"フォントはVisual Studio 2005では使用できません。 –

+0

フォントの読み方を教えてください。あなたは私に例を与えることができますか?C#でデータを読むために使われるデフォルトのフォントは何ですか? –

1

テキストデータは常にフォントとは独立しているので、私は

+0

True!しかし、アプリケーションのテキストボックスには、私が問題になっているコンテンツは表示されません。コンマ、ハイフンなどのように見えますが、Aの上にダブルドットのように元のようにはなりません。「Terminal」フォントはVS 2005で利用できないためです! –

-1
Encoding GreekEncoding = Encoding.GetEncoding(1254); 
using (StreamReader sr = new StreamReader(sNotepadName+".txt", GreekEncoding)) 
{ 
    while ((input = sr.ReadLine()) != null) 
    { 
     sTempInput = input.Split('='); //Data - double dotted above A=A 
     lMyDictionary.Add(sTempInput[0],sTempInput[1]); 

    } 
} 

:ファイルはギリシャ語のテキストを(コードページ1253)が含まれる場合 はたとえば、あなたがこのようなものを使用しますテキストボックスに。このデータは、我々はデータを見ることができる「ターミナル」フォントをメモ帳にコピーして貼り付けた場合

string[] sSplitedText = sEnteredText.Split(' '); //Because many letters can be entered with sapce as delimiter 
foreach(string sNewStr in sSplitedText) 
{ 
    if (lMyDictionary.ContainsKey(sNewStr)) 
    { 
     sReturnText += lMyDictionary[sNewStr]; 
    } 
} 
ResultDisplayTextBox.Text = sReturnText; 

「ターミナル」フォントは、テキストボックスに結果をVS2005で利用できないためには、箱やカンマやハイフンなどになります。エンコードテクニックが使用されていない場合、テキストボックスからデータを貼り付けても、ハートやその他のシンボルのように見えます。だから私の問題は整理されています。あなたのすべての返信をありがとう。