0

C# で Windows フォーム アプリケーションを作成しています。このアプリケーションでは、ユーザーがリストボックスからソース コード ファイルを選択し、ScintillaNET を使用してそれらをカラー コードで表示できます。ファイルはデータベースにバイト配列として保存されます。ハードドライブ上のファイルからバイト配列に変換して保存することができました。ユーザーはコードを編集してデータベースに保存することもできるはずです。最初にファイルをローカル ハード ドライブにダウンロードする必要はありません。これにアプローチする方法がわかりません。

基本的には、ScintillNET コントロールからテキストを保存し、それをバイト配列に変換したいと考えています。逆に、バイト配列を取得して、ScintillaNET で最初に表示されたとおりにテキストを出力します。

4

2 に答える 2

1

System.Text.Encoding名前空間を探していると思います...

        // a sample string...
        string example = "A string example...";

        // convert string to bytes
        byte[] bytes = Encoding.UTF8.GetBytes(example);

        // convert bytes to string
        string str = System.Text.Encoding.UTF8.GetString(bytes);
于 2012-09-24T00:08:53.450 に答える
1

System.Text の「Encoding」クラスを使用できます。

System.Text.Encoding.Unicode.GetBytes("Example");

これは、Unicode エンコーディングを使用して、テキスト「string」に相当するバイトを含むバイト配列を返します。他のエンコーディングも利用できますが、より多くの文字をサポートするため、Unicode を使用することをお勧めします (たとえば、Windows のチャームマップにあるものは何でも)。私の場合は、私がラテン系で、特定の文字が UTF で使用できず、ASCII について疑問があるためです。

バイト配列から文字列に変換するには、次を使用します。

byte[] exampleByteArray = MemStream.ToArray();
System.Text.Encoding.Unicode.GetString(exampleByteArray);

このコードは、メモリ ストリーム内のバイト配列として以前に保存された文字列を返します。他の方法でバイト配列をロードできます。この場合、データベースからロードして System.Text.Encoding.Unicode.GetString() を呼び出します。

于 2012-09-24T00:11:45.790 に答える