-1

フォント「ターミナル」でのみ読み取ることができるデータを含むメモ帳Text.txtについて考えてみます。C#で実装する方法は?メモ帳の内容は、フォントを「ターミナル」に設定した場合にのみ読み取り可能です。そうでなければ、私はボックスしか見ることができませんでした。C#は、BOXではなく正確なデータを取得できるように、「ターミナル」フォントを使用してコンテンツを読み取る必要があります。UTF8で試してみました。同じ応答。

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

例えば:

テキストは–ですが、ハイフンを意味するものではありません。実際の単語はnの上の二重ドットです。メモ帳のターミナルフォントでのみ表示されます。

ここに画像の説明を入力してください

4

4 に答える 4

5

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

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

于 2012-05-10T08:04:24.353 に答える
2

あなたの問題はおそらくテキストファイルのエンコーディング(コードページ)です。テキストファイルはどの言語で書かれていますか?たとえば、ファイルにギリシャ語のテキスト(コードページ1253)が含まれている場合は、次のように使用します。

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();
于 2012-05-10T08:17:36.417 に答える
1

テキストデータは常にフォントに依存しないので、あなたの質問に対するそのような答えはないと思います

于 2012-05-10T08:09:17.350 に答える
-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]);

    }
}

辞書に追加した後、Aが入力された場合、テキストボックスのA記号の上に二重の点線を表示する必要があります。

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では「ターミナル」フォントを使用できないため、テキストボックスの結果はボックス、コンマ、ハイフンなどになります。このデータをコピーしてメモ帳に「ターミナル」フォントで貼り付けると、データが表示されます。エンコード技術を使用しない場合、テキストボックスからデータを貼り付けても、ハートやその他の記号のように見えます。だから私の問題は解決されました。返信ありがとうございます。

于 2012-05-11T07:44:40.497 に答える