C♯相談室 Part11

このエントリーをはてなブックマークに追加
は?
ユニコード問題だね?
C# の言語仕様上の問題。あきらめろ。
954デフォルトの名無しさん:03/10/17 10:28
> マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

よくヘルプにこう書いてあるけど、意味がわからない。
どういう使い方をすると、安全でないの?
>954
日本語訳のミス。
956954:03/10/17 12:02
すまそ。
よく読んだら意味が分かった。
staticのメンバはスレッドセーフで、そうでないメンバはスレッドセーフでないって意味ね。
こんどは意図的な誤回答か。

いよいよ2ちゃんねるらしくなってきたな。
>>253のことじゃないよ。分かってる人は分かってると思うけど、念のため。
959OJのdat読み込みミス:03/10/17 20:56
誤 >>253
正 >>956
どうやったら253と956を間違えるんだろう
961デフォルトの名無しさん:03/10/17 22:41
int   edokko     SJIS
----------------------------
253 == "ニゴミ" == 6C AB ED 0D
956 == "クゴム" == 8B AB ED 1D
962デフォルトの名無しさん:03/10/18 16:18
列挙型のオーバーロードの方法について質問があります。
こんなコードを書いたのですが、コンパイルできません。これは無理なんでしょうか?

using System;

class EnumOverload
{
static void Main(string[] args)
{
Console.WriteLine((ColorBit.Blue | ColorBit.Red).ToString());
}
public enum ColorBit : int
{
Black = 0,
Red = 1,
Blue = 2,
Magenta = 3,
}
public static ColorBit operator |(ColorBit cbA, ColorBit cbB)
{
return (ColorBit)((int)cbA | (int)cbB);
}
}
>>962
enumに [Flags] をつければ演算子再定義もも不要だよ。
964デフォルトの名無しさん:03/10/18 17:24
16bitCRCと32bitCRC算出したいのですが、
解説ページを見てもよくわからなかったので聞かせて下さい。
特にわからなかったのが16bitと32bitの違いです。
まとめてdll化したのが公開されているので
最悪使わせてもらおうとは考えていますが
やはり自分のコードに納得の上でC#で実装したいと考えています。
16bit版と32bit版のサンプルってありませんか?
すぐ見つかると思ったのですがさっぱり見つかりませんでした。
また、理解しやすい方法などあれば教えて下さい。
ごちゃごちゃ書きましたが目的はC#で16bit版と32bit版の
CRC算出関数を作成することです。
よろしくお願いします。
965962:03/10/18 17:25
>963
ありがとー。
Magenta が無事出力されました。
966デフォルトの名無しさん:03/10/18 18:04
文字コードの変換について教えて頂きたいことがあります。

JISコードをunicodeに単漢字ごとに変換したいと希望しているのですが、
次のようなコードを作ってみたところ、うまく変換されません。

using System.Text;

private void btnTest_Click(object sender, System.EventArgs e)
{
byte[] data1 = new byte[2];
data1[0] = 0x30;// '亜'のJISコード1バイト目
data1[1] = 0x21;// '亜'のJISコード2バイト目

byte[] data2 = Encoding.Convert(Encoding.GetEncoding("iso-2022-jp"),Encoding.Unicode,data);
string str = "";
str += (char)(data2[0]*0x100+data2[1]);
MessageBox.Show(str); // ← '亜'が表示されない
}

よろしくお願いします。
967修正:03/10/18 18:06
private void btnTest_Click(object sender, System.EventArgs e)
{
byte[] data1 = new byte[2];
data1[0] = 0x30;// '亜'のJISコード1バイト目
data1[1] = 0x21;// '亜'のJISコード2バイト目

byte[] data2 = Encoding.Convert(Encoding.GetEncoding("iso-2022-jp"),Encoding.Unicode,data1,0,2);
string str = "";
str += (char)(data2[0]*0x100+data2[1]);
MessageBox.Show(str); // ← '亜'が表示されない
}
>>966
エスケープシーケンスの問題。

byte[] bytes = Encoding.GetEncoding("iso-2022-jp").GetBytes("あい01う2");
でbytesを見ると、
1B 24 42 24 22 24 24 1B 28 42 30 31 1B 24 42 24 26 1B 28 42 32
って配列になる。
全角文字列の開始/終了位置にそれぞれ3バイトのエスケープシーケンスが必要なわけだ。
969ちんげ:03/10/18 19:05
c#のソフトはwinnyで落とそう。
>>968
変換できました。ありがとうございます。
penisu maturi
>>971
おまえのちんこを祀った。
973デフォルトの名無しさん:03/10/19 20:13
>>971
おれもおまえのちんこを擂った
埋めろ
975デフォルトの名無しさん:03/10/20 12:56
(・∀・) オチンコ!
(・∀・) チンコ!
(・∀・) ンコ!
(・∀・) コ!
(・∀・) !
976デフォルトの名無しさん:03/10/21 01:29
pictureboxで描画した画像をbitmapで保存する方法を知ってるかたいますか?
宜しくお願いします。
977デフォルトの名無しさん:03/10/21 02:11
pictureboxImage.Save("hoge.bmp");
で如何かしら?
978デフォルトの名無しさん:03/10/22 16:18
正規表現を利用しHTMLのタグ(小なり記号から大なり記号の間)を取り除きたいのですが、
どんな正規表現にすればよいのでしょうか?

<h1><b>TEST</b></h1>

TEST


 
<[^>]+>
980デフォルトの名無しさん:03/10/22 17:02
>>979

.*を使うと思って試行錯誤してました・・・

<[^>]+> 、完璧です!!
ありがとうございました!!

981デフォルトの名無しさん:03/10/22 18:19
外部のDLL関数呼び出しのために使用する
以下のようなクラスがあります。

[StructLayout(LayoutKind.Sequential)]
public class AAA
{
  public uint dwAbc;
  public uint dwFef;
}

[StructLayout(LayoutKind.Sequential)]
public class BBB
{
  public uint dwGhi;
  public uint dwJkl;
  [MarshalAs (UnmanagedType.ByValArray, SizeConst=1000)]
  public AAA[] aaa;
}

クラスBBBのサイズを求めようと、

BBB bbb = new BBB();
Marshal.SizeOf(bbb);

とすると例外が発生してしまいます。

サイズを求める方法はないでしょうか?
982981:03/10/22 18:23
× Marshal.SizeOf(bbb);
○ int size = Marshal.SizeOf(bbb);
983デフォルトの名無しさん:03/10/23 05:14
>>977
ありがとうございます。やってみます。
また、質問です。
”メモリ不足です。”というエラーが出ます。
多次元配列やギザギザ配列([ ],[ ] )を使ったせいなのですが
現在、プログラムが使えるメモリがどれくらいで、プログラムがどれほどメモリを占有しているか、
調べる関数はあるのでしょうか?実際の変数の大きさ、オブジェクトのメモリ(ビット)が
プログラムの大部分のメモリと考えてよいのでしょうか?
ちなみに、メモリは1GBくらいでした。
984デフォルトの名無しさん:03/10/23 14:14
やれやれだぜ
変数 n に数字を入力して、n / 5 + 32 を計算するプログラムを作成せよ。
また結果を表示せよ。

コレがどうしてもわかりません誰か式を書いて解説していただけないでしょうか?
↑マルチはけーん
すまそ、マルチじゃなかった
じゃあ、ちゃんと言い直そうぜ。

>>985
シングルはけーん
>>985
むしろ何が分からないのかが分からない。
おれもマルチかとオモタよ。
でもこれ荒れるのを期待したネタでしょ?
埋め
膿め
宇目
うめー
うめえ
1000取ったらゲイツの奥さんと不倫する。
998
1000前夜祭
( ̄ー ̄)ニヤリッ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。