ふらっとC#,C♯,C#(初心者用) Part28 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
08/05/25 13:02:44
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ

ふらっとC#,C♯,C#(初心者用) Part27
スレリンク(tech板)

2:デフォルトの名無しさん
08/05/25 13:05:41
C#, C♯, C#相談室 Part46
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング
スレリンク(tech板)

Live2
スレリンク(tech板)

初心者のためのプログラミング言語ガイド Part9
スレリンク(tech板)

3:デフォルトの名無しさん
08/05/25 13:07:18
参考サイト。まずはここで検索してから。
URLリンク(google.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)

4:デフォルトの名無しさん
08/05/25 13:10:56
>>1

乙 スレたて感謝します

初心者一同

5:デフォルトの名無しさん
08/05/25 13:22:09
Consol.Out.Write(">>1 乙");

6:デフォルトの名無しさん
08/05/25 16:39:08
勉強で、あるフォルダ配下の.txtファイルを一覧するアプリを作成しています。
DataGridViewにDataSet1をバインドして、
そのDataSet1はファイルリストのxmlを読み込むという風にしたいのですが、
private void Form1_Load(object sender, EventArgs e) {
this.dataSet1.ReadXml(@"C:¥test.xml");
}
としてもDataGridViewには何も反映されません。
DataGridView.DataBind()のようなメソッドもないようですが、
どのようにバインドすればよいでしょうか。
ちなみにxmlの形式は以下のようなものです。
<?xml version="1.0" ?>
- <ContentsInfomation xmlns:xsi="URLリンク(www.w3.org)" xmlns:xsd="URLリンク(www.w3.org)">
<path>C:¥Documents and Settings¥Administrator¥My Documents</path>
<fileName>test.txt</fileName>
</ContentsInfomation>

7:6
08/05/25 17:36:07
自己解決(?)しました。
ツールボックスからフォームにD&Dしたdataset1ではなくて、
コード中でDataSetをnewしてバインドしたら表示されました。
何かのプロパティが作用してたのかな…。

8:デフォルトの名無しさん
08/05/26 09:38:38
多分DataGridViewのDataMember
つまりどのテーブル表示すればいいのか分からんと

9:デフォルトの名無しさん
08/05/26 12:57:54
textBoxにサウンドの再生位置を表示するため、
Timer_Tickで再生位置取得、textBoxに表示としているんですが、
こういう一定時間ごとに処理ってTimerでやっていいもんなのでしょうか。
他にこういった処理をするためのものってありますか。

10:デフォルトの名無しさん
08/05/26 12:59:25
Timerがまさにその用途だろ

11:デフォルトの名無しさん
08/05/26 14:14:40
再生位置表示みたいな割にいい加減な用途なら問題なし。
厳密な一定間隔ごとにサウンドを再生するといった用途で使うなら音がずれまくるだろうな。

12:デフォルトの名無しさん
08/05/26 14:19:24
そのような場合はどうするのですか?

13:デフォルトの名無しさん
08/05/26 14:58:41
もっと高精度なタイマーを使う

14:デフォルトの名無しさん
08/05/26 15:01:16
>>10-11
ありがとうございます。
こういった場合Timer使わずにこうしたほうがいいとか、
あるのかなと思って聞いてみました。
問題ないようでよかったです。

15:デフォルトの名無しさん
08/05/26 16:31:08
タイマの精度ってVistaなりEFI搭載PCで改善されたってことはないのかね。
最新環境でもいまだに55msなの?

16:デフォルトの名無しさん
08/05/26 16:37:28
System.Windows.Timers.Timer使わなきゃいいだけだし…

17:デフォルトの名無しさん
08/05/26 21:15:33
すみません、お聞きしたいのですが

C#でLANの他端末の電源ONは出来たのですが
遠隔でログオンって出来るんでしょうか?

自分なりにググってみたのですが判りません・・・

お願いします

18:17
08/05/26 21:16:48
すみません
VS2005EE&Win2000です

19:デフォルトの名無しさん
08/05/27 11:25:30
private AxWMPLib.AxWindowsMediaPlayer mediaPlayer = new AxWMPLib.AxWindowsMediaPlayer();
private void Form1_Load(object sender, EventArgs e)
{
mediaPlayer.settings.autoStart = true;
mediaPlayer.URL = "C:\\love.mp3";
}

20:デフォルトの名無しさん
08/05/27 11:26:27
すいません。>>19は書き込みミスです。
VC#2005EE XP

WMP使って音楽を再生したいのですが、
ActiveX コントロールのインスタンスが作成されないようで、
autoStartのところで
「InvalidActiveXStateException はハンドルされませんでした」
とエラーが出てしまいます。
何が問題なのでしょうか。

private AxWMPLib.AxWindowsMediaPlayer mediaPlayer = new AxWMPLib.AxWindowsMediaPlayer();
private void Form1_Load(object sender, EventArgs e)
{
mediaPlayer.settings.autoStart = true;
mediaPlayer.URL = "C:\\love.mp3";
}

21:デフォルトの名無しさん
08/05/27 12:01:07
ControlsにAddしてる?

22:デフォルトの名無しさん
08/05/27 12:29:08
>>21
FormのDesigner.csってのに書いて処理できました。
ありがとうございました。

23:デフォルトの名無しさん
08/05/27 19:48:31
>>22
*.Designer.csを自分でいじらない。
ツールボックスにWindowsMediaPlayerを追加しておいて、普通のコントロールと同様にフォームに追加し、
コードの生成はVC#にお任せにするのが無難だよ。
(ツールボックスのコンテキストメニューでアイテムの選択→COMコンポーネント)

24:デフォルトの名無しさん
08/05/27 20:36:21
コードで書くにしてもコンストラクタとかに書けばいいんでね?
てかツールボックスから書かずにAxWMPLibのアセンブリは追加したんだろうか。

25:デフォルトの名無しさん
08/05/27 21:54:32
スクリーンセーバを作っています。
Bitmapオブジェクトを作り、そこに色々と描画し、Paintイベントが来たら(Refreshをしたら)をそれをフォームに描画、という手順を踏んでいるのですが、
どうも遅いようです。これは改善できないのでしょうか。

LockBitsを使っているので、Bitmapオブジェクトの代わりに何か使う、ということは出来ないみたいなのですが、、、

26:デフォルトの名無しさん
08/05/27 21:58:44
GDIで描画


27:デフォルトの名無しさん
08/05/27 23:06:23
Form上でcalc.exeを起動させたいんですけど
どうすればいいんでしょうか
再度ググって来ますダイブ!!

28:デフォルトの名無しさん
08/05/27 23:34:05
>>20

usingは WMPLib; ?
C#2008で柱名い


29:デフォルトの名無しさん
08/05/28 02:09:47
いやアセンブリ参照したあとならusingはクリックでVSが補完してくれる。

30:デフォルトの名無しさん
08/05/28 05:54:33
URLリンク(www.atmarkit.co.jp)
VC#2008EEを使ってます。このサイトを見ながらgetlinks.csを書いてみたのですが
”windows”は名前空間”System”に存在しません、
WebBrowser・webBrowserDocumentCompletedEventArgs
が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足してます。
と出てコンパイルがうまくいきません。
何かほかに必要なものがあるのでしょうか?



31:デフォルトの名無しさん
08/05/28 06:25:28
>>30
>”windows”は名前空間”System”に存在しません、
windowsの先頭は大文字


32:デフォルトの名無しさん
08/05/28 06:58:11
フォームデザイナでフォーム上に追加したコントロールのDisposeメソッドは、
どのような仕組みで呼ばれるのでしょうか。
***.Designer.csを見ても、コントロールのDisposeメソッドを呼び出している部分は見つかりません。
何らかのタイミングで自動的に呼ばれるのであれば、自作のカスタムコントロール上に配置した
子コントロールのDisposeメソッドも、実は明示的に呼ばなくても大丈夫?

33:デフォルトの名無しさん
08/05/28 07:01:05
親がDisposeされるときについでにDisposeされる

34:デフォルトの名無しさん
08/05/28 07:06:46
>>31
ありがとうございます。
書き込みはちょっと間違いがあるかもしれません
サイトののコードをコピペしても駄目でした

35:デフォルトの名無しさん
08/05/28 07:55:51
System.Windows.Forms.dllとか参照に追加

36:デフォルトの名無しさん
08/05/28 08:12:07
>>35
System.Windows.Formsを追加したらちゃんとコンパイルできました!ありがとうございます。
本当にくだらない質問してすみませんでした。

37:デフォルトの名無しさん
08/05/28 08:20:34
>>27
Processってコンポーネント貼り付けて
Process.Start(”calc.exe”);でスタートだってよ

38:デフォルトの名無しさん
08/05/28 18:07:45
C#で配列は
Data[4,4]
Data[4][4]
2通り使えますよね

int[][] Data = new int[4][4];
この宣言方法ではエラーになります
Javaのように1発で宣言する方法ないですか?

39:デフォルトの名無しさん
08/05/28 18:11:12
追加
Data[4][4]
こちらの方式を使う場合の話です

40:デフォルトの名無しさん
08/05/28 18:15:20
ありません

41:デフォルトの名無しさん
08/05/28 18:16:11
そうなんですか 残念!

42:デフォルトの名無しさん
08/05/28 18:18:15
せっかくだからラムダ式を使って

Array.New(4,4, () => new Foo())

こんな感じのを作ればいいんだろうけどintだと初期値いらんな

43:デフォルトの名無しさん
08/05/28 18:39:10
>>38
それなら[,]でいいと思うが一応。
int[][] Data = new int[4][] {
new int[4],
new int[4],
new int[4],
new int[4],
}};
もしジャグ配列とただの多次元配列の区別が付いていないなら、勉強し直すこと。

44:デフォルトの名無しさん
08/05/28 18:47:38
>>43
わかりました
やはり通常 ジャグ配列より多次元配列の方が効率よくて推奨なんですかね

45:デフォルトの名無しさん
08/05/28 18:52:46
いいや全然
明らかにジャグ推奨

46:デフォルトの名無しさん
08/05/28 18:53:40
>>44
おおざっぱに言ってしまえば、多次元配列の中身は1次元配列といっしょだから。
添え字の書き方が特殊なだけで。

47:デフォルトの名無しさん
08/05/28 19:00:02
>>45-46
そうですか ジャグでもいいんですか
Javaに流用しやすいのがいいですね

48:デフォルトの名無しさん
08/05/28 21:45:34
ジャグより多次元の方が早いだろ

49:デフォルトの名無しさん
08/05/28 21:50:49
一番下の添え字だけ変えていくならジャグの方が速いよ
バラバラなら多次元の方が速いこともある

50:デフォルトの名無しさん
08/05/28 22:52:51
>>37
「=」押した瞬間 Pgで事前に指定(フォーカスのある)したテキストボックスに
ポピー&ペーストできる方法ありませんかね・・・

ググッっはいるんですけど ^^;

51:デフォルトの名無しさん
08/05/28 22:57:09
>>50
電卓にCtrl+cで値をコピーできるから
クリップボード参照してテキストボックスに入力してみては?

52:デフォルトの名無しさん
08/05/28 23:28:09
>>51
確かにそれはいえてるんだけど
かっこよさの観点から「=」入れると
かっこいいいいいいいい!

俺もてもての展開を気体

53:デフォルトの名無しさん
08/05/28 23:30:23
くーるまーにーポッピー


54:デフォルトの名無しさん
08/05/28 23:50:03
>>51
確かにそれはいえてるんだけど
かっこよさの観点から「=」を叩いた瞬間テキストボックス
入るとかっこいいいいいいいい!
ジョジョふうにゆうと

CooooooooooooooooL

>>53
コピーな

55:デフォルトの名無しさん
08/05/28 23:51:21
>>52
出来るかどうか分からんけど
電卓の上に透明なウィンドウ重ねて
マウスやキボドの入力をそのまま電卓に送って
=押されたときだけクリックのあとにCtrl+cを送って、貼り付けるとか

56:デフォルトの名無しさん
08/05/29 10:33:43
クリップボード壊しちゃ駄目かな?
WM_COPY使えたりしないか

57:デフォルトの名無しさん
08/05/29 11:12:39
ファイルで1バイト(8 bit)の読み込みは
ReadByte()
で出来ますが
1ワード(16 bit)の読み込みはどうすればいいですか?
ReadShort()
というのはなさそうですが

58:デフォルトの名無しさん
08/05/29 11:13:42
Read()

59:デフォルトの名無しさん
08/05/29 11:15:52
ReadByte() + 256 * ReadByte()

60:デフォルトの名無しさん
08/05/29 11:19:11
ありがとうございます
やってみます

61:デフォルトの名無しさん
08/05/29 12:15:19
BinaryReaderを使え

62:デフォルトの名無しさん
08/05/29 12:22:47
BinaryReader微妙に使いにくいんだよね
とりあえずエンディアン指定ぐらいしたいなぁ

63:デフォルトの名無しさん
08/05/29 12:35:28
>>62
あとReadStruct()とかあるといいよな。

64:デフォルトの名無しさん
08/05/29 16:53:11
2つのバイト列が一致しているか比較したい場合にはどうしたら良いのでしょうか?
byte[] b1とb2の中身が同じかどうか調べたいのです。

==やEqualsだと判別できないようです。

一回、Base64で文字列にして比較するか、
foreachでぐるぐる回しながら1バイトづつ比較するのでしょうか?

65:64
08/05/29 17:02:18
てへっ、いいサイトを見つけて納得しました。
URLリンク(blog.livedoor.jp)

66:デフォルトの名無しさん
08/05/29 17:16:47
Enumerable.SequenceEqualだな3.5的に

67:デフォルトの名無しさん
08/05/29 17:25:15
>>66
まじっすか、3.5はいろいろありますねぇ。
3.5が標準で搭載されるように早くならないかなぁ。


68:デフォルトの名無しさん
08/05/29 17:32:52
オレなんか、C#3.0からもう戻れない状態だw

69:デフォルトの名無しさん
08/05/29 17:38:20
LINQだけ抜き出して.NET 2.0にくっつければいいんだろ
誰かLINQと互換性のあるライブラリとか作ってないの

70:デフォルトの名無しさん
08/05/29 17:45:13
拡張メソッドが記述できない時点でほとんど意味は無いと思うが…

71:デフォルトの名無しさん
08/05/29 17:55:27
.NET 2.0が対象でもC#3.0は使えるだろ
LINQがないだけで

72:デフォルトの名無しさん
08/05/29 17:59:47
拡張メソッドは無理になくてもいいかな、匿名クラスとラムダ式ができないと発狂するかも

73:デフォルトの名無しさん
08/05/29 21:37:56
>>69
MONOのSystem.Core.dll

74:デフォルトの名無しさん
08/05/30 00:30:07
>>70
自前でExtensionAttribute宣言すればいいじゃない。

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]
class ExtensionAttribute : Attribute { }

75:デフォルトの名無しさん
08/05/30 10:01:13
VS2008で.NET Compact Framework 2.0、ターゲットをCEで
エミュレータ環境にてC#でのプログラミングをしています。

System.Windows.Forms.ControlクラスのFontプロパティに
Arai と Tahoma 以外のフォントを指定する方法を御存知の方は
いらっしゃいませんか?

Form や Label、TextBox に MS明朝やゴシックなどを指定
したいのですが、フォント選択のダイアログには Arai と Tahoma
しか表示されず、またコンストラクタ内(InitializeComponentメソッド
内、または同メソッド実行後に)に下記のような指定をしても、
デフォルト(Arai, 10pt)のままです。

this.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular);

プログラム自体が原因ではなく、他に原因(プロジェクトの設定等)
があるのかも分からない状態です。

よろしくお願いいたします。


76:デフォルトの名無しさん
08/05/30 10:06:37
とりあえずInstalledFontCollectionでフォントファミリを列挙してみたらどうだろう

77:75
08/05/30 12:11:42
即レス、ありがとうございます。

InstalledFontCollection でフォントファミリを列挙してみたところ、
"Courier New,MS UI Gothic,Tahoma,MS ゴシック,MS Pゴシック"の
フォントを確認できました。

しかし、フォントダイアログに表示されていた"Arai"が一覧にありません。
デバッグで確認した結果、"Arai" を指定(というか、フォントファミリの
一覧にないフォントを指定)すると、"MS Pゴシック"が使用される事が
分かりました。

しかし、これ以上は分かりません。今はエミュレータですが、このプロ
グラムを動作させるCEには "MS 明朝" がサポートされているしで、
何が何だか分からなくなってしまいました(´-`;)



78:デフォルトの名無しさん
08/05/30 12:21:43
Arialじゃないのか?

79:デフォルトの名無しさん
08/05/30 12:47:03
>75が新井さんで自作フォントなんじゃね?とか言ってみる

80:75
08/05/30 13:25:45
おっと!>78 の指摘通り、Arialですw

昔、PGについて右も左も判らない頃に先輩から「このフォントは
ヘルメットのAraiが作ったんだよ」と言われ、ヘルメットのロゴと字体が
にていたので、綴りを確認しないまま、そのままAraiに脳内変換。
その後、後輩に指摘されるまで、あらゆるところでずっと使っていました。

 参考:アライヘルメット(左上のロゴを参照)
 URLリンク(www.arai.co.jp)

…未だトラウマな件はさておき、本題について誰か御存知ないですか?


81:75
08/05/30 15:58:09
自己レスです。

フォント選択のダイアログには Arial と Tahoma しか表示
されなかった件について、ダイアログに「すべてのフォント
を表示」のチェックボックスにチェックを入れたら表示され
たので指定する事ができました。

ただし、MS明朝を指定してもエミュレータ上ではゴシック
に置き換えられて表示されるので、CEエミュレータの問題
と思われますので、質問をWindowsCEプログラミングスレ
に移動して続けたいと思います。

レス頂いた方々、ありがとうございました。(´-`)ノシ


82:デフォルトの名無しさん
08/05/30 16:01:35
.Net FrameworkにSTLでいうdequeってないよね
どっかにdequeのいい実装はない?

83:デフォルトの名無しさん
08/05/30 16:29:25
VS2008でテストを書いているんですがメッセージボックスのテストとかってどう書けばいいんでしょうか


84:デフォルトの名無しさん
08/05/30 17:24:09
日本語でおk

85:デフォルトの名無しさん
08/05/30 17:31:45
>>82
それこそSTL見ればいいんじゃね? あとJavaとか

86:デフォルトの名無しさん
08/05/30 17:35:54
自分で書くのがめんどくさいんだよ
いいよもう自分で書くよ

87:デフォルトの名無しさん
08/05/30 17:36:05
ボタンを押したらメッセージボックスが出てきてOKを押したときのテストとか?を書きたい

何も考えずButton_Clickをテストから呼んだら普通にメッセージボックスが表示されたorz
OKとかCancelでテストを書きたいんだけどテストコード上どう書けばいいのやら・・・


88:デフォルトの名無しさん
08/05/30 17:45:50
>>87
だから日本語でおk。
エスパーするに、メッセージボックスで押されたボタンを判定したいということか?

89:デフォルトの名無しさん
08/05/30 17:57:01
俺的にエスパーするとフォーム上にボタンを配置して
そのボタンを押せばメッセージボックスを出したいと言うことかな?

90:デフォルトの名無しさん
08/05/30 18:19:24
>>82
Wintellect's Power Collections
プログラミングMicrosoft .NET Framework 2版で紹介されている。

91:デフォルトの名無しさん
08/05/30 18:32:57
>>90
Thanks!!

92:デフォルトの名無しさん
08/05/30 19:11:01
メッセージボックスで選んだボタンによる分岐などのテストだろ…
メッセージ送ったら何とかならんかったっけかな?


93:デフォルトの名無しさん
08/05/30 19:46:11
メッセージボックスで押されたボタンを判定したいなら、MessageBox.Show()の戻り値を見ればいい。

DialogResult result = MessageBox.Show(); // メッセージボックスが閉じると、resultにOKとかCancelが入る
if (result == DialogResult.OK)
{
...
}
else if (result == DialogResult.Cancel)
{
...
}

94:デフォルトの名無しさん
08/05/30 19:51:21
いやそういうことじゃないと思うんだよね…

95:デフォルトの名無しさん
08/05/30 20:06:26
アセンブリが厳密署名をされているかどうか、確認する方法って、
バイナリエディタで書き換えてみる以外にあるでしょうか?

署名無し、
遅延署名の公開鍵のみで署名
秘密鍵で完全署名

これらの状態を出来るだけ簡単に判別したいのです。
真ん中のは起動できないので、まぁ、分かるような気もしますが、
厳密署名有と無しを簡単に見分ける方法はあるでしょうか?


96:デフォルトの名無しさん
08/05/30 20:50:30
リフレクター
ILDASM
VSで参照

確かに不便だと思う

97:デフォルトの名無しさん
08/05/30 20:58:26
そういうユーティリティ作ればいいんじゃね?
指定ファイルをLoadFromしてGetName()表示するようなの

98:95
08/05/30 21:15:37
皆さんどうも有り難うございます。
確かに、ディスアセンブラみたいので見れば、PublicKeyTokenの値が見えますね。
難読化ばかりに興味がいっていて、気づきませんでした。

どうも有り難うございました。


99:デフォルトの名無しさん
08/05/30 21:26:15
C#で指定した時間だけ処理を停止させるのってなんでしたっけ?
調べてもでてこないのでおしえてください

100:デフォルトの名無しさん
08/05/30 21:31:57
Thread.Sleep

101:デフォルトの名無しさん
08/05/30 22:16:45
>>99
「c# 停止」で出てきたが、電話帳でも調べたのか?

102:デフォルトの名無しさん
08/05/30 23:49:33
「C# 指定した時間だけ処理を停止させる」で検索してたんだろ

103:デフォルトの名無しさん
08/05/31 00:03:03
>88,89,92
メッセージボックスの「ボタンクリック」をテストコードに書きたいとです

ボタンクリック処理の中でメッセージボックスが出るんだけどそのたびにテストが止まるから
まぁメッセージボックスが出るたびに手動でクリックしていけばいいんだろうけど・・・


104:デフォルトの名無しさん
08/05/31 00:57:43
>>103
Button.PerformClick呼ぶ。

105:デフォルトの名無しさん
08/05/31 01:29:59
むちゃゆうなw


106:デフォルトの名無しさん
08/05/31 03:38:25
プログラミングって論理的思考も必要だけど、
理路整然と説明できる力も必要だよね。
色んな解釈が出来ないように正確にコードを書いていくんだ。

107:デフォルトの名無しさん
08/05/31 04:04:36
フォームデザイナで作られるリソースと、
リソースデザイナで追加したリソースとの共存って出来なかったのかなあ。
もしくは、フォームデザイナで追加出来る、
バイナリデーターの単純なコンテナがあればいいのに。

108:デフォルトの名無しさん
08/05/31 11:38:54
共存したところで別に意味ないんでないか?
別々に呼び出して一緒に使えばいいだけで

109:デフォルトの名無しさん
08/05/31 13:17:57
カスタムコントロール作った時に、
コントロールのresxに、固有のビットマップなんかを含めたくなるな。
Resources.resxに入れてるけど、ちとプログラムのモジュール性が下がる。

110:デフォルトの名無しさん
08/05/31 17:10:11
なるほどね

111:デフォルトの名無しさん
08/05/31 23:02:26
参照型のフィールドを明示的に初期化しなかった場合、初期値がnullになってたんですが
これは言語規格で決められてるのですか?

112:デフォルトの名無しさん
08/05/31 23:05:06
はい。

113:デフォルトの名無しさん
08/05/31 23:06:27
変数は0、参照はnull、stringもnull、配列もnull

114:デフォルトの名無しさん
08/05/31 23:11:50
すいません!どなたかご教授願います

C♯から、VBAで記述されたプログラムを呼び出したいのですが
どうすればよいのでしょうか?

よろしくおねがいします

115:111
08/05/31 23:13:21
>>112-113
thx

116:デフォルトの名無しさん
08/05/31 23:17:05
>>114
そのVBAはExcelやWordのもの?
環境によっていろいろ違うから、
VBSやVB6のプログラムなどとの勘違いの可能性も含めてもう少し具体的に。

117:114
08/05/31 23:23:05
>>116
ありがとうございます!
VBAはAccess上で記述されたものです。

118:デフォルトの名無しさん
08/05/31 23:50:36
>>117
MS-Accessをオートメーション経由で動かしてVBAのマクロをつかう必要がある。
ExcelやWorをC#からオートメーションで操作するサンプルは割と多いのだが、
mdbだけを使いたいならADO.NET経由で十分だからかAccessはいいサイトが見つからない。

少しずれるがDoCmdを使っているあたりでおおよそどういったものかは見当は付くと思う。
URLリンク(www.microsoft.com)

119:デフォルトの名無しさん
08/06/01 00:06:21
C/C++のsize_tに相当する型は、C#では何ですか?

120:デフォルトの名無しさん
08/06/01 00:06:49
uint

121:デフォルトの名無しさん
08/06/01 00:07:44
こいつはどうだい
URLリンク(support.microsoft.com)

122:デフォルトの名無しさん
08/06/01 00:07:58
UIntPtrだな

123:114
08/06/01 00:09:48
>>118
>>121

ありがとうございます!
ご紹介いただいたサイトを参考に一度組んでみます!

124:デフォルトの名無しさん
08/06/01 01:22:00
初歩的な質問ですみません
C#にポインタはないんですか?

125:デフォルトの名無しさん
08/06/01 01:27:48
あるよ


126:デフォルトの名無しさん
08/06/01 01:46:30
unsafe{

//ここでポインタをご自由に

}

127:デフォルトの名無しさん
08/06/01 02:07:22
オプションでunsafeを許可するのも忘れずに

128:デフォルトの名無しさん
08/06/01 02:16:32
>>125-127
あるんですか。サンクス。
勉強します。

129:デフォルトの名無しさん
08/06/01 03:45:45
>>124
ふうん。すごいね(棒)。ネット知識(笑)?

130:デフォルトの名無しさん
08/06/01 11:02:34
確かunsafeの実装は必須じゃないんだっけ

131:デフォルトの名無しさん
08/06/01 11:20:33
このあたりを読めばいいんだと思いますが

URLリンク(msdn.microsoft.com)

でもポインタを使うのは標準のコーディングじゃないとしたら
ポインタを使わずに構造体をチェーンでつなぐようなことって
どうやるんですか?

構造体の配列を使ってますか?
教えてください。

132:デフォルトの名無しさん
08/06/01 11:22:11
クラスにすればいい。
.NETの構造体はプリミティブな内容を表す以外には使わないことになってる。

133:デフォルトの名無しさん
08/06/01 12:03:26
C#にクラスってあるんですか?
クラスはポインタを使わないんですか?

134:デフォルトの名無しさん
08/06/01 12:05:56
クラスはデフォルトで参照型
常にポインタをやりとりしてる

135:デフォルトの名無しさん
08/06/01 12:15:48
ポインタじゃなくて参照だっぜ
ポインタごときただのアドレス値などと一緒にしてもらっては困る

136:デフォルトの名無しさん
08/06/01 12:19:01
どっちかというとポインタ
正しくはハンドル

137:デフォルトの名無しさん
08/06/01 13:07:54
>133
>C#にクラスってあるんですか?
>クラスはポインタを使わないんですか?

どっちもないよ。自分で調べようともしない奴にはね。


138:デフォルトの名無しさん
08/06/01 13:27:29
へーC#ってクラスないんですかー
勉強になりました。
明日先生に言ってみます。

139:デフォルトの名無しさん
08/06/01 13:46:34
>>138
C#のクラスの先生に言うの?

140:デフォルトの名無しさん
08/06/01 13:51:41
教えてください。

今、C#で簡単なデータベースを作っています。
同じフォルダにおいたmdfファイルに接続してあれこれ出入力するアプリです。
困っているのは、F5でデバックして起動している間はデータを保持するのですが、
一旦終了すると、テーブルのデータがすべて消えてしまうのです。
データを削除するようなコードは書いていません。明らかにデバッグ中は何をしても
テーブルのデータは維持されています。
また、デバッグをしていない状態で、サーパーエクスプローラでテープルを選択し、
[テーブルデータの表示]状態で手入力をしたデータは、デバッグを経てもずっと
テーブルに保持されます。 なぜなんでしょう?
フォーム上でテーブルの入力規則に違反したりということはありません。
デバッグ中は集計他あらゆる操作に対応しますので、テーブルにデータは入っているのに。

原因として何がありえますでしょうか?

141:デフォルトの名無しさん
08/06/01 13:55:39
COMMITしてないんじゃないの?

142:140
08/06/01 14:06:13
>>141
COMMITなるものの意味がよくわかりませんが、
確かに、mdfファイルとの関係が刹那的というか、
互いに唯一の存在として婚姻を確認しあった記憶がありません。
接続の設定をさらっとしただけです。
どこでそのCOMMITなるものをすればいいのでしょうか?
申し訳ありませんが、もう一言だけでもお願いします。



143:デフォルトの名無しさん
08/06/01 14:13:41
婚姻?

144:デフォルトの名無しさん
08/06/01 14:16:25
秘密を作らずずっと一緒にいることの設定 >婚姻

知らないうちにデータが消えるとか、他からの操作を受けたりしないでほしいのです。

145:デフォルトの名無しさん
08/06/01 14:16:37
ObjectContainer client

client.Commit ();

これ

146:デフォルトの名無しさん
08/06/01 14:21:01
繰り返しテストが出来るようにオリジナルのDBファイルから
デバッグ実行のたびにコピーしてるはず。設定で変えられたと思う。

147:デフォルトの名無しさん
08/06/01 14:21:20
なんか自動翻訳機にかけられた文章のままで質問している人がいるな。

148:140
08/06/01 14:22:14
>>145
ありがとうございました。
どこかのプロパティフォームで設定するわけではなさそうですね。
これから調べて適切なところに記入してみます。
ありがとうございました。

149:デフォルトの名無しさん
08/06/01 14:22:42
普通に言葉を綴ってるつもりでもそれが詩になってしまうんだろう

150:133
08/06/01 15:14:22
>>134-136
この参照型というのがポインタだと思えばいいんですかね。
違いはあるにしても役割的には同じみたいなんで。
もう少し調べてみます。
ありがとうございました。

151:デフォルトの名無しさん
08/06/01 15:17:15
>>140

>>146 が言ってるのって、これだと思う。
URLリンク(www.ailight.jp)

152:デフォルトの名無しさん
08/06/01 15:41:18
>>150
加算減算ができるのがポインタで、できないのが参照、
くらいに思っとけば当面困らないと思う。

153:133
08/06/01 21:42:46
なんとかできるようになりました。
ありがとうございました。
VC#の本とVC++の本を買ってきたのですが
VC#の本にはクラス定義のことが書いてなかったので
最初クラス定義ができないと思っていました。
チェーンの最初と最後を指すポインタ変数(参照型)も
クラスのメンバー変数にしないとエラーになったので
ダミーのクラスを定義しました。これが正しい方法か
どうかわかりませんが、とりあえず動いています。

154:デフォルトの名無しさん
08/06/02 00:22:08
クラス定義をしなければあらゆるC#プログラムは動かないよ


155:デフォルトの名無しさん
08/06/02 01:19:19
そう言えばC#ってクラスのメソッドの定義と宣言って分けれるの?

156:デフォルトの名無しさん
08/06/02 01:27:42
>>155
メタ情報はアセンブリ自身が持っているから定義と実装を分ける必要はなく出来ない。
あえて分けたいならインターフェイスとその実装クラスになるだろう。
あとC#3.0からPartial Methodという似たものは追加になっているが、
宣言と実装を分けるためのものではない。

157:デフォルトの名無しさん
08/06/02 01:30:34
そもそも分ける必要性って無いよね。
C/C++だとヘッダをインクルードしたりするけど、
C#なら直接アセンブリを参照設定して使うものだし。

158:デフォルトの名無しさん
08/06/02 01:32:36
いや、普段C++やってて最近ちょっとC#を弄り始めたから
ちょっとだけ気になったんだ、ありがとう
ヘッダファイルないのが何か気持ち悪いと言うか、まだ慣れない

159:デフォルトの名無しさん
08/06/02 01:41:44
C++/CLIを使い出すとわけわかんなくなるぞよよ

160:デフォルトの名無しさん
08/06/02 10:08:12
逆にC#のクラスの書き方に慣れるとC++のヘッダファイルがめんどくさくなるよ。
あれこそVSが自動で挿入してくれればいいのに。

161:デフォルトの名無しさん
08/06/02 17:03:21
ListViewで行間を広くするにはどうしたらいいのでしょうか?

162:デフォルトの名無しさん
08/06/02 20:56:48
谷尻 かおり の技術評論社
C#いつ出るんだよ・・・
さっさとだしてくれよ
Accessなんかもういいからさ!
もおおおおおおおおおおおおおお!!

163:デフォルトの名無しさん
08/06/02 21:25:11
>>162
もう出てない?

164:デフォルトの名無しさん
08/06/02 21:28:06
谷尻ってデーターベース関連の本出してる人?
2008対応の本なら見てみたいな

165:デフォルトの名無しさん
08/06/02 21:43:40
Visual C# 2005 [実践]プログラミングテクニック 応用できる基本の書き方

166:デフォルトの名無しさん
08/06/02 22:21:39
だれか>>161のやり方おしえてください

167:デフォルトの名無しさん
08/06/02 22:47:54
当然VC#2008だよ
そろそろ出してもいいだろ
2005買ったとたんに2008でたら
痛すぎて注文できない
そもそも高い
監修は旦那か?
お願いだから監修外して値段下げてーーーーー

168:デフォルトの名無しさん
08/06/02 22:54:19
谷尻の本はイラネだろ。DGVひとつまともに解説できなかった人に
LINQとか増えてる2008のちゃんとした本が出せるとは思えない。



169:デフォルトの名無しさん
08/06/02 23:04:55
「DGV」て、なあにググッたらワンちゃんのふん取り袋って出てきたが・・・

170:デフォルトの名無しさん
08/06/02 23:09:34
DataGridViewか

171:デフォルトの名無しさん
08/06/03 03:10:32
>>158
俺、最近仕事でC++に戻ったけど、あのヘッダを自分で書くスタイルはやっぱ最悪。
めんどくさいのはもちろんのこと、
private メンバ追加しただけでそのクラスを参照するありとあらゆるソースの再コンパイルが必要だし、
ヘッダ読み込みのせいでコンパイル速度も低下してるし。

メソッド追加するのがしんどくなって、長ったらしい関数が増える。

172:デフォルトの名無しさん
08/06/03 11:32:28
byte[] buf = new byte[100];
みたいに配列を確保した時、各要素が0になるのは規格で決まってるんだっけ?

173:デフォルトの名無しさん
08/06/03 11:41:26
うん

174:デフォルトの名無しさん
08/06/04 02:17:21
コレクションフレームワークDictionaryとその反復処理(foreach+KeyValuePair) 
CSVファイルの読み取り方法
SQLServer ExpressEditionのデータベースへの接続のためのConnectionStringの書き方
(”...Data Source = .\\SQLEXPRESS”)

以上の機能の説明が全部網羅された本があったら教えてください。
(特に3番目を書いてるのは見たことがないです)
C#は言語自体はいいと思うけど、多くの市販の解説書はひどいものじゃないでしょうか?
私(Java,C経験者)に言わせれば上みたいな機能がFormの色づけよりずっと基本なんですが。



175:デフォルトの名無しさん
08/06/04 02:21:56
そうですか

176:デフォルトの名無しさん
08/06/04 07:38:01
>>174
まあまあ、ここでもブックマークに入れとけ。
URLリンク(www.connectionstrings.com)

177:デフォルトの名無しさん
08/06/04 09:40:50
>174
っ「SqlConnectionStringBuilder」

178:デフォルトの名無しさん
08/06/04 09:52:19
あなたに言われてもね

179:デフォルトの名無しさん
08/06/04 10:40:57
ListView の ColumnHeader の TextAlign について

0番目のHeader は TextAlignの 設定ができません(Leftのみ)。
・ColumnHeaderコレクションエディタで設定しようとすると
コンボボックスで選択したのに、Leftに戻ってしまいます。
・コードにて記述しても同じく、0番目はLeftのまま表示されます。

1番目以降は 任意の設定を認識してくれます。

原因等 ご存知の方、いらっしゃいましたらお教えください。

180:デフォルトの名無しさん
08/06/04 10:57:08
あなたに〜

181:デフォルトの名無しさん
08/06/04 11:18:47
>>179
仕様。

182:デフォルトの名無しさん
08/06/04 11:46:03
>>181

即レス、ありがとうございました。
質問後、ググってたらまっ先にMSDNに記述ありました…


183:デフォルトの名無しさん
08/06/04 14:54:34
DataSetで自動生成されたFindBy何がしかを使用して、
DS.SomeRow row = dataset.Some.FindByFooBar(foo, bar);
ってなことをやった時に、rowに値が入ったのか入らなかったのかを
判別する方法はないでしょうか?

fooとbarは主キーです。そのためにFindByが自動生成されている訳ですが。

やりたいことは、キー重複を防ぐために、挿入前に、事前に確認したいだけなので、
上の方法で取得できたか出来ないかを調べるのが、もっとも簡単かと思ったのですが。




184:183
08/06/04 15:13:06
どうやら、主キーが複数ある場合はContainsでも駄目なようなので、
地道にFind(foo = f and bar = b)と書いて、返ってくるRowsのLenghtで
判断することにしました。

185:デフォルトの名無しさん
08/06/04 15:30:32
ん?rowがnullかどうかじゃだめなのけ?

186:デフォルトの名無しさん
08/06/04 15:33:57
VS2005でプロジェクトデザイナからアプリケーション設定を追加しようとすると、
「app.configファイルに値を保存しているときにエラーが発生しました〜」と怒られて
値が保存されません。
VS2005より後にTurboDelphi(.NET1.1)をインストールしたのが原因かと思い、
VS2005(.NET2.0)を再インストールしたのですが、改善されません。
対策が分かりましたら、どうかご教示をお願いいたします。

187:デフォルトの名無しさん
08/06/04 16:06:42
>>185
それは試したんですけれど、rowがnullにはならなかったんですけれど‥‥。
そういうものかと思って納得したんですが、後でもう一度確かめてみます。

188:デフォルトの名無しさん
08/06/04 16:09:56
>>186
app.configのXMLが壊れちゃっているのでは?
app.configだけ削除して、作りなおしてみるとか。

app.configなんて只のXMLですし、プロジェクトデザイナじゃなくて手書きでも問題無いですよ。
実際、VS2003の時は手書きだったし。
新しくapp.configを作って、なんとなく項目をマージすれば大丈夫。

189:デフォルトの名無しさん
08/06/04 16:57:49
>>185
だーー。nullじゃないかどうかだけでいけますた。
なんでさっきは駄目だったんだろ。
どうも有り難うございました。


190:デフォルトの名無しさん
08/06/04 17:30:53
オブジェクト思考難しー(右手で左の乳首をつまみながら

191:186
08/06/04 17:33:37
>>188
即レスありがとうございます。
app.configの削除はやってみたのですが、ダメでした。
となると、手書きですか・・・

192:デフォルトの名無しさん
08/06/04 18:15:03
System.Windows.FormsにSeparatorコントロールみたいなやつってある?

193:デフォルトの名無しさん
08/06/04 18:17:56
WPFのSeparatorみたいなやつ?
コントロールとしては無いでしょ
WPFみたいに統一されてないからそれぞれの実装次第

194:デフォルトの名無しさん
08/06/04 18:23:08
C#のソースに
[hoge(page)]
bool hage = true;

[hoge]
void panaya(object sender, EventArgs args)

のようにカギ括弧を使った書き方があるのですが、これは
・何という名前で?
・どのようにすれば作れるのですか?
 F1キーのヘルプだと、括弧内のクラスについての説明から始まっていてどう要領を得ません。
名前を教えて貰えれば、ヘルプや入門ページで探せる気もするんでお願いします。

195:デフォルトの名無しさん
08/06/04 18:24:25
hage = true; これわざと!?

196:デフォルトの名無しさん
08/06/04 18:25:52
>>194
属性
Attributeを継承したクラスを作ると出来る

197:デフォルトの名無しさん
08/06/04 18:37:14
>195 狙ってない。狙ってない。落ち着いて。

>196
 ありがとうございます。
なんだか凄く一般的な名前で、上手くを検索できなかったようです。
「属性の適用」ってヘルプ記事を見つける事ができたのでこれから読んでみます。

198:192
08/06/04 19:31:21
>>193
thanks

Control間の区切りで、水平セパレータ一本引きたいんだけど、
なさそうだね。

199:デフォルトの名無しさん
08/06/04 19:48:05
>>198
昔ここで教えてもらったのでは、

Label separator = new Label{ BorderStyle = BorderStyle.Fixed3D, Size = new Size(100, 2) }

こんな感じでそれっぽくなった。

200:192
08/06/04 20:34:18
>>199
おぉっ、まさしくこれです。

very thanks !

201:デフォルトの名無しさん
08/06/04 21:41:36
>>199

へぇ〜 みんな そうやってんの?
オレ、いつもGroupBox を縮めて使ってたよ。

202:デフォルトの名無しさん
08/06/05 10:47:38
Windows.Formで、SplitContainerを使用したとき、Panel1と2の間の
境界線の幅を太くして、つまりSplitterWidthを大きくして、
その境界線の上にコントロールを配置することは可能なんでしょうか?



203:デフォルトの名無しさん
08/06/05 14:27:05
やってみろよって思うんだけど
出来なかったんだけどどうすればいいですかなら分かるけど

204:202
08/06/05 16:00:18
>>203
質問の仕方が悪かったですね。
もちろん、試してみて出来なかったので質問しました。
両パネルにコントロールを配置することは可能ですが、
パネル部分以外のSplitContainerにコントロールを配置することは不可能なようです。
まぁ、コンテナっていうぐらいですから、当然ですか?

ということで、境界上に置くつもりだったコントロールは、片方のパネルの上に寄せました。
Shurikenのアドレス帳とかだと、境界上にコントロール置いてあるんですが、
あれは激しく自作っぽいですな。

205:デフォルトの名無しさん
08/06/05 17:04:57
>>204
そのコントロールのParentがSplitContainerではなければ
コード上でそのコントロールのLocationを適切な値に変更すれば
境界上に配置可能。

206:デフォルトの名無しさん
08/06/05 17:06:15
203の厭味ったらしい性格が治る見込みはありますか?

207:デフォルトの名無しさん
08/06/05 17:11:13
ありません

208:デフォルトの名無しさん
08/06/05 17:53:58
>>205
う〜ん、なるほど、動的に境界上のコントロールの座標を算出するってことですか。
確かに、SplitBarの移動のイベントは取れるようですので、可能かも。

私のやりたかったことって、単純にSplitContainerでは実現できなくて、
縦3分割の3つのパネルを作り、真ん中のパネルが固定幅というのと同義だ
ということに気付きました。

でも>>205がおっしゃるように、SplitContainerを使って、動的に計算した方が、
真ん中ペインをドラッグしたときのマウスイベントの処理が楽ですよねぇ。



209:デフォルトの名無しさん
08/06/05 20:09:22
スレリンク(tech板:531-532番)
から誘導されました。

 前もって作った配列の要素とクラスとの"紐付け"をしたいのですが、
良い手はありますか?

ちょっと条件があります。
・DirectXで配列を引数にとる関数を使いたい。
・配列は構造体もクラスも使えるけど、構造体配列が好ましいらしい。
・頻繁に更新するので、List<T>.toArray()は勿体ないっぽい。

 だいたいこんな事を考えてます。
sruct instanceData {
 int hage
}
class GameCharactor // 構造体の配列と同数作られるクラス
{
  private int hoge;
  static instanceData[] idarray; //構造体配列
  GameCharactor(int i){hoge = i} //コンストラクタ
  public int hage{ get{return idarray[hoge]hage;} set{idarray[hoge].hage = value;} }//プロパティ
 public int class_only_member;
}
GameCharactor::idarray = new instanceData[numBoxes]; //構造体配列初期化
<略>
 List<GameCharactor> CharaList = new List<GameCharactor>(numBoxes); //最大がnumBoxes

 現状非常に見栄えが悪いかも知れません。
先入観的に、構造体配列に拘っていたりします。
おおまかにこれっぽく動いてC#で好ましい手とはどんなのがありますか?

210:デフォルトの名無しさん
08/06/05 20:47:08
>>209
言いたい事は分からんでもないが。Listは、それ専用に書くかな。
何をやりたくて、どんな構造にしたいかで変わってくる部分も有るから。
聞きたい内容には、それでもいいんじゃない? でつよ。
2.どちらでもいい。配置指定の構造体のほうが楽かもね。
3.専用を作る
クラスの中にDX用の構造体を持ってもいい。

211:デフォルトの名無しさん
08/06/05 21:36:33
初めまして。質問です。
string文字列に格納されている16進数を数値に変えるにはどうするのがスマートでしょうか?
例:
"1A"→26 に変換したい

212:209
08/06/05 21:44:38
>210
変なの読んで貰って、ありがとうございます。
これで終わらせて、次の工程に進めます。

 頭の中に、ポインタとキャストがあるので、不安に
陥って書いてしまいました。 C++ではあり得ないなとか。
あんまり酷く言われなくて助かりました。

213:デフォルトの名無しさん
08/06/05 21:45:01
int num16 = Convert.ToInt32("FFFF", 16);

214:213
08/06/05 21:47:29
>>211
URLリンク(dobon.net)
ここに乗ってた全角はどうだろ・・・

215:デフォルトの名無しさん
08/06/05 22:19:30
>>212
DXを駆使したいなら、あまりOOP的な関数は使わないほうが言いと思われ。
NEW繰り返すような事は控えたほうがいいかな。例えば、オブジェクトのデータは
最初にガバーーと取ってその中でやりくりとかね。リストも、専用に着けたり離したり
高速でできるように、もちろん時間内に処理できるできないで流動的なリストになる。
高速なオブジェクト管理も作るしね。 まあ、やりたい事によって色々ですよ。

216:211
08/06/05 22:29:12
>>213-214
ありがとうございます!!!(>_<)
まさにそれです!!!お早い返事、ものすごく助かりました!!!

217:デフォルトの名無しさん
08/06/05 23:53:14
c#使いの人たちは 打ち出しはクリスタルレポート使ってるの?

218:デフォルトの名無しさん
08/06/06 16:33:18
シングルトンってガベージコレクションの対象になります?

219:デフォルトの名無しさん
08/06/06 17:13:46
なりません

220:デフォルトの名無しさん
08/06/06 17:23:08
>>219
ありがとうございます。
ちなみにならない理由て簡単に教えてもらえないでしょうか。

221:デフォルトの名無しさん
08/06/06 17:28:00
staticな変数に入ってるオブジェクトはガベージコレクションの対象にならないから

アクセス可能な変数に代入されているオブジェクトはGCに回収されない
つまりstatic or 使用中のメソッドのローカル変数に代入されているオブジェクトは回収されない
そうじゃないものは回収される


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4740日前に更新/99 KB
担当:undef