[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/28 05:52 / Filesize : 228 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part51



1 名前:デフォルトの名無しさん [2009/02/04(水) 23:26:55 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part50
pc11.2ch.net/test/read.cgi/tech/1229661915/l50

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

944 名前:デフォルトの名無しさん [2009/03/29(日) 13:08:28 ]
質問です。
これまで以下のように VB6 の ADODB.Recordset Seek メソッドで .mdb 検索を行っていました。

rs.Seek Array(1006, 10), adSeekFirstEQ


C# で再現する場合、
Seek メソッドの第1引数「Array メソッド」に相当するオブジェクトは何なのか教えてください。

945 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:27:57 ]
>>944
データベースへのアクセスモデルからしてまるで変わっちゃってて、
ADOのことはよくわからないからズバリそのものな答えはちょっとわかんない。

Array 相当のものだったら、 new int[] とか new[] { 1006, 10 } とかで作れる。

キーに一致する最初の値をとりたいんだったら、LINQ to SQL 使って
var keys = new[] { 1006, 10 };
var firstEq = table.First(x => keys.Contains(x));
とかでいけると思う。


946 名前:944 [2009/03/29(日) 13:53:30 ]
>>945
ありがとうございます。
やってみましたが仰るとおり

List<object> values = new List<object>();
values.Add(1006);

object[] array = values.ToArray();
rs.Seek(array, SeekEnum.adSeekFirstEQ);


上記のように配列をそのまま渡すことで通りました、ただし値が単一の場合のみ。
下記のようにキー値を複数設定すると「パラメータが間違っています」っておこられる

values.Add(1006);
values.Add(10);


どうしたらいいんだろな_| ̄|○

947 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:56:29 ]
new object[] { 1006, 10 }

じゃダメなんけ?

948 名前:944 [2009/03/29(日) 14:07:52 ]
>>947
スマソ。
テーブル名、インデックス名のパラメータを間違えてただけだった。

キー値が複数の場合でもバッチリいけたわ。
ありがとう、無事解決です。

949 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 05:47:23 ]
ところで、
++
++
で、#ちゅう事なん(´・ω・) スカ?

950 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 06:25:37 ]
>>949
アンダース・ヘルスバーグはそう言ってる。

951 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:19:47 ]
そんなこじゃれた名前つけるから検索しにくくなるのだ

952 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 14:23:11 ]
.NETよりはまし。.NETの検索し難さといったら…



953 名前:デフォルトの名無しさん [2009/03/30(月) 14:24:12 ]
でもCとかDよりいいよね

954 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 14:29:13 ]
Bも忘れないであげて

955 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:53:03 ]
VisualC#2008をインストールして、動作確認の為にWindowsFormsApplication1を
作成したのですが、デバッグ実行すると(0xc0000005)で終了してしまいます。
デバッグなしで実行だと、普通にウインドウが表示されます。

どうやら、プロジェクト名の長さが11文字以上だとこういう現象になるようです。
プロジェクト名が10文字以内というのは、ちょっと不便なのでなんとかしたいの
ですが、対策をご存知の方がいましたら教えてください。

956 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 17:53:44 ]
今の今まで
C,C++,C#相談室
だと思ってた

957 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:17:06 ]
昔はスレタイに # の文字入れると#が消えちゃってたから
しつこく入れるようになったんだっけかw

958 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:11:59 ]
検索用じゃね?

…と思ったら、1つ目と3つ目がどちらも ASCII のナンバ記号だった。

959 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:04:35 ]
いつもは3つ目が全角のナンバー記号だよ。
次スレ立てる人は気をつけて。

960 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:46:02 ]
この Part51 でそろそろ終わりにしようぜ

961 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:52:12 ]
2ヶ月で1スレ消費するようなペースって事は需要はあるのだろう。
Part51にもなって「そろそろ終わりに・・」ってのは今更すぎないかw

962 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:53:50 ]
>>960
来なけりゃいいんじゃね?



963 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:36:10 ]
スレタイに#を3パターンで書くのをこのスレで終わりしないかといってると上の流れを見ると思うのだが
俺がイカれてるのかな。そう解釈する俺が狂ってるだよなやっぱりそうとしか思えないうん

964 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:51:31 ]
他のC#スレも数パターン使ってるとこあるし、検索用に残しといていいんじゃね?

965 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:44:20 ]
ところでおまいらC#で組んだもの、何に利用してるの? 仕事?


966 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:51:26 ]
研究
まあ仕事だけど

967 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:52:50 ]
俺は趣味でちまちま作ってる。
自分専用の痒い所に手が届くような小規模アプリが殆ど

968 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:27:50 ]
C#で孫の手つくれんの?

969 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:30:22 ]
つまんないよ

970 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:49:21 ]
つまらないものを面白くするのがプログラミングだろjk

971 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:14:15 ]
窓の手ってそういう意味だったのか!素で気付かなかった

972 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 07:47:06 ]
C井でいいんじゃね?



973 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 08:29:31 ]
思いっきり仕事だな。
来月あたりに客先とおしてそのユーザーに公開される(´・ω・`)

974 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 08:57:55 ]
趣味コードは全部C#。
仕事だと、社内ツールの類はC#で書いてる。


975 名前:デフォルトの名無しさん [2009/03/31(火) 10:08:11 ]
質問です。
PropertyGridで入れ子になっていて展開可能な項目を自動で展開したいです。
まずExpandAllGridItemsメソッドを調べてみましたが、これはカテゴリの展開専用で意味がありませんでした。
次に、GridItem.Expandedプロパティを見つけ、おおこれこそ捜し求めていたものと歓喜したのですが・・・
PropertyGridからGridItemの一覧を得る方法が分かりません。
SelectedGridItemがあって、なぜGridItemsが無いのでしょうか。

976 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:30:55 ]
SelectedGridItemからParentたどってけば

977 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 11:12:02 ]
Public Type Struct1
  Member1 As String
  Member2 As Byte
  Member3 As Byte
  Member4(20) As String
  Member5(20, 1340) As Byte
End Type

Declare Function ExpFunc1 Lib "Library1.dll" _
  (ByRef a_Struct1 As Struct1, _
  ByVal a_iNumber1 As Long, _
  ByVal a_iNumber2 As Long) As Long

ソースのない「Library1.dll」とそれを利用するための
上のようなVB6のサンプルがあるんですが、
これをC#(2008/.NET3.5)で利用するにはどう書いたら
いいんでしょうか?

よろしくお願いします。

978 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 12:49:26 ]
>>972
++
ナ+
になっちまう

979 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:02:09 ]
>>977
C#で参照してみれば?
ラッパクラ出来てインテリセンスきくんじゃないかな?

980 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:19:21 ]
>>979
---------------------------
Microsoft Visual C# 2008 Express Edition
---------------------------
'Library1.dll' への参照を追加できませんでした。
ファイルがアクセス可能で、有効なアセンブリまたは
COM コンポーネントであることを確認してください。
---------------------------
OK
---------------------------

COMじゃないとNGっぽいですね。

981 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:22:24 ]
DllImportでぐぐればいいんじゃね

982 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:23:49 ]
>>980
ごめん、VB6のDLLかと思ってた
VB6はDLLはCOMになるから

そういうことならReflection使ってみては?
色々他にもあると思うけど



983 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:25:08 ]
動的に呼び出しさせて何をさせようというんだ俺は・・・
疲れてんだな

984 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:19:48 ]
>>977
2次元配列のマーシャリングってできたっけ?>識者

985 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:35:29 ]
2次元配列はやったことないけど出来るはずだと思う

986 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:43:20 ]
うお、今調べたら出来ないようだった、もうしわけない。
対策はいろいろあるそうだが、ストレートには出来ないそうだ。

987 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:18:17 ]
とりあえずVB6の知識をひけらかすか

Public Type Struct1 
  Member1 As String 'BSTR
  Member2 As Byte '1バイト
  Member3 As Byte '1バイト
  Member4(20) As String 'UTF16な文字が20文字
  Member5(20, 1340) As Byte 'Option Base 0なら21×1341バイト
End Type

何の役にたつかはしらん

988 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:44:38 ]
>>987
>UTF16な文字が20文字 はこれじゃね?
Member4 As String * 20 

Member4(20) As String はStringの配列21 (Option base によるけど)

989 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:52:13 ]
立てれなかったから誰か任せた

C#, C♯, C#相談室 Part52
------------
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part51
pc12.2ch.net/test/read.cgi/tech/1233757615/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

990 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:53:17 ]
「ふらっと」と「VS2008」スレが新スレになってるので更新。
>>3>>5はそのままでおkかな?
-----
関連スレ

ふらっとC#,C♯,C#(初心者用) Part39
pc12.2ch.net/test/read.cgi/tech/1237051173/

Visual Studio 2008 Part 15
pc12.2ch.net/test/read.cgi/tech/1233853864/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
pc11.2ch.net/test/read.cgi/tech/1231506876/

【VB.NET】LINQ友の会【C#, C♯, C#】
pc11.2ch.net/test/read.cgi/tech/1202568694/

C#,C#の宿題片付けます。
pc11.2ch.net/test/read.cgi/tech/1197620454/

991 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:53:59 ]
>>987,988
参考になります。
Option Base は無指定ですので、0ですかね。

UnmanagedType.BStr をヒントにもう少しトライしてみたいと思います。

992 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:15:52 ]
VB、C#混合になってしまうが
VB6で>>877の標準モジュールを含むプロジェクトを作って
VB.NETのアップグレードウイザードにかける。

やってみたがTODOが残るな・・・これもで手を入れないといけないようだ。




993 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:18:16 ]
VB6もC#も中途半端な知識しか持っていないけどこんな感じではないのか、と質問していい?
unsafe struct Struct1
{
[MarshalAs(UnmanagedType.LPStr)]
string Member1;
byte Member2;
byte Member3;
[MarshalAs(SizeConst = 21)]
string Member4[];
fixed byte Member5[21 * 1340];
};

[DllImport("Library1.dll")]
static extern int ExpFunc1(ref Struct1 a_Struct1, int a_iNumber1, int a_iNumber2);

unsafeが嫌なら
[MarshalAs(UnmanagedType.U1, SizeConst = 21 * 1341)]
byte Member5[,];
としてMember5 = new byte[21, 1341];

994 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:01:27 ]
>>988
そうだった
すっかり知識が抜け落ちてて愕然

995 名前:977 mailto:sage [2009/04/01(水) 09:48:39 ]
UnmanagedType.LPStrとか
UnmanagedType.BStrとか
UnmanagedType.ByValArrayとか
いろいろ試しましたが、どうにもうまく行かないので、
もう諦めてVB6でラップDLL作ってそれをC#で参照して
使うことにしました。
VB6のデバッガでもう少し粘るといいのかもしれませんが
これで妥協しました。

いろいろありがとうございました。

996 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:55:35 ]
MSDN見たか?まあ解決したならいいか

997 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:17:26 ]
C#, C♯, C#相談室 Part52
pc12.2ch.net/test/read.cgi/tech/1238548552/

998 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:58:25 ]
>>996
MSDNは 見まくり ですね。。

解決というか 逃げ ですけど、とりあえず
やれることはやれるようになったので。

VB6側の状況がよくわからずに
やみくもにやってもダメですね。
暇ができたら、ダミーの Library1.dll を作って
VB6から呼んでみて、中がどうなってるのか
確認してから再挑戦してみたいと思います。

999 名前:デフォルトの名無しさん [2009/04/01(水) 12:33:10 ]
MSDNよりPInvoke

1000 名前:デフォルトの名無しさん [2009/04/01(水) 13:14:28 ]
1000いただきまーす♪

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<228KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef