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


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

C#, C♯, C#相談室 Part59



1 名前:デフォルトの名無しさん [2010/05/16(日) 23:13:52 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

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

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

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

159 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 07:01:46 ]
RemoveIf がよかった

160 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:26:42 ]
追加してRemoveAllをobsoluteにすればよかったのにそうしなかったのには何か意図が、、、なさそうだな

161 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:37:48 ]
そんなことしたらほとんどのプロジェクトで警告出まくってえらいことになる
ほんとはList<T>のFind**/Exists/TrueForAllあたりも
LINQが無かったころの遺物なので(実際Silverlightでは削除)軒並みObsoleteにするべき

162 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 12:55:07 ]
TrueForAll を素直に LINQ で書くにはどうすればいいの

163 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 13:03:46 ]
Enumerable.All

164 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:47:24 ]
>>155
抜けているようには思えないが....

165 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:48:46 ]
RemoveAll すべてわすれる

166 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 20:58:42 ]
実際にコード中で使うときは引数込みで意味は通るだろ
でもIndexOfと違ってRemoveAllだけでも意味が通っちゃうから
インテリセンスやMSDNで名前だけ並ぶとわかりづらいな

167 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 00:27:26 ]
Listviewについて質問させて下さい。
やりたい事は、
複数のListViewがあり、それぞれで複数の項目(item)を選択した状態を作りたいです。
4つほどのListViewを作り、それぞれで1,2項目、合わせて6ー8項目を選択して、ボタンを押したら、それに見合うデータを取得するというイメージです。
先程、作ってみた所、ListViewのフォーカスを別のListviewに移すと、それまで選択した項目が ”非選択" になってしまいます。
こうならない方法はないでしょうか?

場違いな質問という事であれば、他のスレッドを紹介していただけると助かります。
microsoft visual c# 2008 expressを使い始めて3日目で、
今までは 簡単なscript(ruby, javascript)を書いた経験があるくらいです。
ピントがずれてるのかもしれませんが、よろしくお願いします。









168 名前:デフォルトの名無しさん [2010/05/27(木) 00:33:43 ]
なにかあったな
保持する設定

169 名前:167 mailto:sage [2010/05/27(木) 00:35:25 ]
>>168
プロパティを探せばありそうですか?探してみます。

170 名前:デフォルトの名無しさん [2010/05/27(木) 00:42:25 ]
あった
HideSelectionをtrueにすると強調表示なし
falseにすると強調表示あり

171 名前:167 mailto:sage [2010/05/27(木) 00:48:04 ]
>>170さん、ありがとうございます。
確かに HideSelection を falseにしたところ、選択した後が残ってました。
今から、listView2.SelectedItemsで選択したitemが取れるか確認します。

172 名前:167 mailto:sage [2010/05/27(木) 00:52:13 ]
ListView3.SelectedItemsで取れてました。 
おかげで一歩前進しました。
ありがとうございました。

173 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 06:09:08 ]
とあるファイルを監視して、そのファイルに変更があった場合、そのファイルを読み取って処理を行いたいと思っています。

しかし、イベントハンドラの中で変更されたファイルを読み取ろうとすると、TargetInvocationExceptionが発生します。
new StreamReader(e.FullPath)の部分で例外が出てしまうのですが、どうすれば読み取れるでしょうか?

■ソース
private void watcher_Changed(System.Object source, System.IO.FileSystemEventArgs e){
 using (StreamReader sr = new StreamReader(e.FullPath)){
 }
}

174 名前:デフォルトの名無しさん [2010/05/27(木) 07:47:04 ]
>>173
ファイルの監視とかなら、FileSystemWatcherじゃないの?
使ったことないけど

175 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 08:34:43 ]
RemoveAll()ってCのcreat()に通じるものを感じるな

176 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:05:05 ]
e.FullPathはちゃんと有効なパスになっているのか

177 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:12:11 ]
>>173
TargetInvocationExceptionのInnerExceptionは?
ファイルを変更してるプログラムがまだロック中なんじゃない?



178 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 18:31:18 ]
>>177
できましたありがとう。

using(FileStream fs = new FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using(StreamReader sr = new StreamReader(fs)){
string strLine = sr.ReadLine();

  以下省略・・・

179 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 18:54:05 ]
鱗から目です

180 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 20:47:53 ]
JaneStyleなどの2ch専ブラの機能の、「>>170」などにマウスホバーすると、>>170の内容が出てきます。
これをlistviewでやりたいんですが、どのように実装すれば良いでしょうか?
VisualStudio2008を使っています。

■イメージ
名前  詳細1  詳細2  詳細3
test1  あ     い     う
test2  か     き     く     ←この行でマウスホバーされたら名前と詳細1の内容から、表示する内容を決める
test3  さ      し     す

181 名前:デフォルトの名無しさん [2010/05/28(金) 20:50:39 ]
>>180
マウス関連のイベントでマウスが乗っかって停止したら〜とかあったはず
それで任意のコントロールで表示すればいいだけちゃうの?

182 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 21:08:22 ]
>>181
自分でマウスホバーと書いておいて申し訳ないんですが
MouseHoverのイベントを使用すると、かなり重いんです。
中で何も処理をしなくてもかなり重くなってしまいます。

183 名前:デフォルトの名無しさん [2010/05/28(金) 21:49:35 ]
>>182
そんなに重かったっけ?
まあ何もしないってのよりはそりゃ処理するので負荷は増えるだろうけどさ

184 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 22:08:00 ]
普通にToolTip使えばええやん

185 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 23:14:30 ]
>>183
ストレスを感じるくらいには重いです。
ボタン押下時に多少重くなるのはいいんですが、カーソルを移動させただけで重くなるのは避けたいです。

>>184
アドバイスありがとうございます。
わからない点があるので、わかるようでしたら教えてください。

■不明点
・マウスがListViewのどの行の上にあるのか取得できるか?(選択させるわけではないのでselectedではありません
・行ごとに説明文を変える事ができるのか?

186 名前:デフォルトの名無しさん [2010/05/28(金) 23:33:11 ]
>>185
これではどう?
dobon.net/vb/dotnet/control/lvitemtooltip.html

187 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 00:05:14 ]
>>186
完璧です。
ありがとう。



188 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 01:10:17 ]
>>185
はやくリリースビルドで速度を確認する作業に入るんだ。

解決したらしいが。。。

189 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 02:44:47 ]
FreeTrain EX Avという、A列車で行こう4のクローンになりたいゲームを作ってるのですが。
sourceforge.jp/projects/freetrain-exav/
(最新βが2.1.1.5で、ソースは直下trunk/以下が該当します)

パラメータをリアルタイム表示するウィンドウを追加して行ってたら、データセーブ時に特定の
ウィンドウをあけっぱなしているとエラーが起こるようになってしまいました。
>アセンブリ 'FreeTrain.Core, Version=2.1.1.5, Culture=neutral, PublicKeyToken=null' の型
> 'freetrain.world.rail.StationInformationWindow' はシリアル化可能として設定されていません。
データのセーブロードはBinaryFormatterを使ったシリアライズでしています。
ウィンドウのFormをシリアライズしようとしてるわけではなく、パラメータの変化をイベント起こして
もらって表示をリフレッシュするために使ってるイベントハンドラが参照を呼んでこのウィンドウ
のシリアライズをしたがっているみたいなのです。

core/world/rail/Station.csが駅本体部分で、ここでイベントの宣言を
public delegate void StationCounterListener();
public StationCounterListener onStationChange;
とやってて、駅に乗降があったときにonStationChange();してます。

パラメータを表示してるウィンドウはcore/controllers/rail/StationInformationWindow.csで
public StationInformationWindow( Station st ) {
this.station = st;
InitializeComponent();
onUpdate();
station.onStationChange += new StationCounterListener(onUpdate);
}
ここでstation.onStationChange += の行をコメントアウトするとエラーがなくなります。
しかし他にもイベントハンドラでリアルタイム書き換えしてるウィンドウ多数あるのにエラーに
なってなくて、なぜこのウィンドウだけなるのかが分からないのです。

190 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 03:32:30 ]
そのonUpdateがどうなってるかまず晒せ

191 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 03:34:38 ]
ロギングにlog4net使おうかと思ってるんだけど、log4netて使いにくく無いですか?
今まで使ってた自作Loggerクラスはstaticなメソッドを一発呼ぶだけ、みたいな感じにしてたんだけど
log4netだとGetLogger呼ぶ時の引数がやっかいで、簡単に自作クラスでラップできそうにないし・・・

全クラスの先頭に
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
とかうめこんで
loger.Error("えらー");
とかめんどくさいなぁ。

この辺どうやって解決してます?
それともNLog使ってる人のが多い?

192 名前:デフォルトの名無しさん [2010/05/29(土) 03:56:56 ]
>>191
TraceListenerで十分だから、そんなもん使わん

193 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 07:15:23 ]
参考までに教えて欲しいのですが、>>186でできるのはListViewだけで
checkedListboxではできないのでしょうか?
もしできるようならそっちもいろいろやってみたいのですが
MSDNを見てもそれらしいプロパティが存在しないみたいなんです。

194 名前:デフォルトの名無しさん [2010/05/29(土) 08:36:30 ]
Listbox系のアイテムの管理はstring[]だからなあ
tooltip使ってみたけどcheckedListbox全体ででちゃうな
個別はできなかった

195 名前:デフォルトの名無しさん [2010/05/29(土) 08:42:21 ]
おっと自分の質問忘れるところだった

2chの通信をモニターするだけのソフトを作りたいんですが
参考になるような情報を扱ってるサイトをご存知ないでしょうか?
もしくはヒントでもかまいません

196 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 08:53:49 ]
>>193
>186の1.1以前と同じやり方でやればいいよ
GetItemAtの代わりにIndexFromPoint使って

197 名前:デフォルトの名無しさん [2010/05/29(土) 08:58:15 ]
C++でいう
#include <shobjidl.h>
#include <shlguid.h>
はC#だと何になるのでしょうか?



198 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 09:04:20 ]
>>197
どのインターフェイスを使いたいのさ

199 名前:197 [2010/05/29(土) 09:06:29 ]
>>198
ショートカットのリンク先を取得するのにusingが分かりません

200 名前:デフォルトの名無しさん [2010/05/29(土) 09:09:01 ]
>>199
usingを知りたいのはわかるw
ヘッダーよりどの関数の代わりかで聞いたほうがいいよ

201 名前:189 mailto:sage [2010/05/29(土) 09:29:35 ]
>>190
こんなかんじです

private void onUpdate(){
// initialize the dialog
nameBox.Text = station.name;
label_loaded.Text = string.Format("{0} / {1}",station.LoadedToday,station.LoadedYesterday);
label_unloaded.Text = string.Format("{0} / {1}", station.UnloadedToday, station.UnloadedYesterday);
label_trains.Text = string.Format("{0} / {1}", station.TrainsToday, station.TrainsYesterday);
label_waiting.Text = string.Format("{0} / {1}",station.WaitingPassengers, station.population);
label_entering.Text = string.Format("{0} / {1}",station.WantEntering, station.entering);
label_LastUnloded.Text = station.lastUnloaded.ToString();
}


202 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 10:04:45 ]
簡単なのはShell32.dllをCOMとして参照設定し、
using Shell32;
で、Z:\Hoge.lnkのリンク先を得るコードはこんな感じ。
ShellFolderItemを直接得る方法があればいいんだけど、それは分からん。

Shell sh = new Shell();
Folder f = sh.NameSpace(@"Z:\");
foreach (ShellFolderItem i in f.Items())
{
if (i.IsLink && i.Path == @"Z:\Hoge.lnk")
{
Console.WriteLine(((ShellLinkObject)i.GetLink).Target.Path);
}
}

203 名前:202 mailto:sage [2010/05/29(土) 10:08:38 ]
すまん
>>202>>199な。

204 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 11:28:09 ]
>>201
それに使ってるプロパティのどれかが内部的にシリアライズ使ってるか、
どっかでシリアライズしてるのがたまたま其処で発狂するかのどっちかだな
てか何処でエラー起こってんのよ?
newしてるとこじゃないんだろ

205 名前:197 [2010/05/29(土) 12:12:10 ]
>>202
ありがとうございます
試してみたところ
エラー 1 型または名前空間名 'Shell32' が見つかりませんでした。
とエラーがでてしまいます。

206 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 13:07:35 ]
>>205
ちゃんと参照設定してないだろそれ
usingのことじゃないぞ>参照設定

207 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 00:51:07 ]
.NET framework 4でoffice 2003のアドイン作れますか??



208 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 18:21:20 ]
タイプライターのように文字表示したいのですがUIでThreadを使うなと以前書いてあったと思います
どのようにwaitをかければ良いでしょうか
ttp://ideone.com/NZMm7

209 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 18:42:43 ]
>>208
Dispatcher通せば別スレッドからアクセスできるよ。

210 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 19:08:07 ]
>>208
System.Windows.Timerを使えばいい。

211 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 19:54:56 ]
waitを掛けるって発想が大昔のBASICっぽいなw

212 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 19:56:20 ]
UIでThreadを使うなって
Invokeしろって意味じゃないのか?

213 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 19:59:38 ]
正しくは「UIスレッドを止めるな」だな
スレッドを止めたいときは別のスレッドを作る

214 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:09:56 ]
208です
BackgroundWorkerを使って別スレッドにしてみましたが結局UIを触るなってことらしく
にっちもさっちも行きません
Thread.Sleepで止めて、その間UIを触れないようにしました

215 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:17:29 ]
タイマ使え
ループはいらん

216 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:42:04 ]
>>214
どこを参照してそのような知識を得たのか晒してみるといいよ

217 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:51:58 ]
タイマーだと、タイプライターのような入力文字列によるインターバルの差や、
入力速度の揺らぎを再現しようとすると、綺麗に纏まらないな

勿論、それくらいやるよね>>208



218 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 21:55:56 ]
それでもそんなことにスレッド使うのはありえない
短い間隔で頻繁にコールバックかけて時間測るようにするだろ
ゲームみたいに自分でメッセージループ回してもいい

219 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:03:16 ]
>>214
だからDispatcher使えって。
別スレッドから、「UIスレッドでこの処理実行してくれ」ってお願いする機能。


220 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:07:38 ]
いやそもそも普通そんなことにスレッド使わないから

221 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:08:55 ]
>>219
普通DispatcherというとSystem.Windows.Threading.Dispatcherだが、
WinFormの話でそんなんだされても困る

222 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:13:49 ]
208です
さすがに素人でも214の処理はまずいと思いましたのでTimerを使ってみました
ideone.com/za8su
期待通りの動きといえば期待通りなのですがどうでしょうか

223 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 22:18:26 ]
>>221
あー、Control.Invoke (Delegate) のことね。

224 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 23:19:51 ]
>>222
なんかおかしくね?

225 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:17:46 ]
なんかって何?

クリックするたびにTickのイベントハンドラが増えるとか、
TypeWriter()の引数を使っていないとか、
typewriterは1単語だからケースがおかしいとか?

226 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:20:47 ]
>>225
やさしいなw

227 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:29:16 ]
C#でフォルダを作るときに変数をフォルダ名にすることはできますか?



228 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:35:42 ]
変数を使わずにフォルダを作る方法がわかってるんだったら
フォルダ名を文字列で直接指定する代わりに変数を与えればいいだけ

229 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:35:42 ]
なぜそうしたいんですか?

230 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:44:24 ]
>>228
すいません
それがうまくいかなくて…

>>229
例えば「5」と入力したらフォルダ1、フォルダ2、…、フォルダ5というようにフォルダを作りたいので

231 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:49:00 ]
>>230
for (int i = 1; i <= 5; i++) {
string folder = string.Format("フォルダ{0}", i);
}


232 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:50:03 ]
>>230
それは「変数をフォルダ名にする」じゃ言葉足らずもいいとこだろ。

var path = Path.Combine(basePath, string.Format("フォルダ{0}", i);
Dicretory.CreateDirectory(path);

とかでもダメ?


233 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 00:54:08 ]
>>231
>>232
ありがとうございます
試してみます

234 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 10:28:12 ]
ゲ製から来た人かなあ
ゲーム作るつもりなら最終的には自分でメッセージループ回すことになると思うぞ

235 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 15:06:34 ]
C++の__DATE__みたいなコンパイル日付は
どのように取得するのでしょうか?

236 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 15:41:05 ]
無理
どうしてもやりたかったらビルド前のコマンドでコード生成

237 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 17:43:21 ]
無いですか・・・残念
ありがとう



238 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 23:18:02 ]
コード生成っていったって
internal static class VersionInfo { public const string Date = "2010/05/31"; }
こういうのを生成してcsファイルに保存する処理をスクリプトかなんかで書いてビルド前イベントで呼ぶだけ

239 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 00:56:56 ]
svnのリビジョンを読み取ってソースに書き込む奴とかな。

240 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 04:51:57 ]
わざわざ読み取らなくても勝手に変えてくれるよ

241 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 15:22:12 ]
MSってコード生成とかメタプログラミングとか好きだから
__DATE__みたいなオモチャ使わず各自で好きにやるのが普通だと思ってるんだろうな

242 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 16:22:49 ]
どうしても必要ならリフレクション。

243 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 16:50:03 ]
リフレクション使うにしてもコンパイル時に埋めこんどかないと無理
[assembly:CompileDate("2010/05/31")]みたいな
どっちみちコード生成が必要だから>>238の方が楽

244 名前:239 mailto:sage [2010/06/01(火) 19:34:49 ]
>>240
うわあ、今までPerlのスクリプトで処理してた・・・

245 名前:デフォルトの名無しさん mailto:sage [2010/06/01(火) 19:50:35 ]
>>244
まじかよw
これまでの作業量について考えるのだけはやめておくんだ!これからが大事!な!

246 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 05:36:50 ]
245 のやさしさに泣いた

247 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 08:58:57 ]
まぁ遠回りして勉強になることもあるし・・・
あまりにも調べが足りなさすぎるがこれも勉強だw



248 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 10:55:14 ]
まあデフォルトのままだとかわらないからな

249 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 13:09:26 ]
相談です。

.NET3.5でWindowsフォームアプリケーションを作成しています。

Webカメラやリモートカメラなどの映像を取り込み、その映像をリアルタイムにフォーム内に表示したいのですが、
可能でしょうか?

「webカメラ キャプチャ」等のワードで検索しても良い資料が見つからなかったので、
どなたか良い方法をご教授ください…

250 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 13:34:04 ]
>>249
DirectShow辺りに答えがあるんじゃないかな?

あと、ヒントならGraphEditPlusというツールを使うのもありかも。

251 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 13:51:48 ]
Directshow.NET使ってる。
普通に使える

252 名前:251 mailto:sage [2010/06/02(水) 14:00:17 ]
あーあとOpenCVの.NET版も試したけど使えたよ

253 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 14:38:34 ]
どなたか教えてください。

機器との通信により得られた16進数の浮動小数点データ形式文字列を、
10進数にしてを表示するプログラムを作成したいのですが、よい方法はないでしょうか?
<例>受信データ:42C80000 出力:100.0
といったものを作りたいのです。

なお、受信データを文字列に変換するところまでは、できています。

254 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 14:49:05 ]
16進文字列をintに変換
int n = Convert.ToInt32("42C80000", 16);
intを浮動小数点に変換
float f = BitConverter.ToSingle(BitConverter.GetBytes(n), 0);
100.0のような書式で出力するのはわかるよね?

255 名前:デフォルトの名無しさん [2010/06/02(水) 15:00:18 ]
その前にエンディアンとかの話は大丈夫なんだろうか・・・

256 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 15:01:56 ]
受信データの例を見る限り問題無いでしょ

257 名前:253 mailto:sage [2010/06/02(水) 15:29:16 ]
>254さん
できました。
ようやくConvert.ToInt32の意味がわかりました。
どうもありがとうございます。



258 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 20:34:47 ]
フォーム内のフォーカスを初期表示時と同じにする、もしくは
フォーム内のコントロールで TabIndex が一番若い番号のコントロールを
簡単に知る方法はないでしょうか?

現在複数のフォームを使うアプリを書いているのですが、
インスタンス化の処理が結構重い(DBから情報ひっぱってきてコントロールを沢山つくる)ので
フォームのインスタンスを使いまわすことにしました。

Close() のかわりに Hide() を使ったまではいいのですが、
再度表示したときに当然のごとくフォーカスの位置が前回と同じなままになってしまいます。
ロードイベントあたりで先頭のコントロールに対して Select() を使って対処していますが、
コントロール名をハードコーディングしているのでデザイナでの TabIndex 変更に追従出来ていません。




259 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 20:45:33 ]
>コントロール名をハードコーディングしているのでデザイナでの TabIndex 変更に追従出来ていません。
意味がわかりません






[ 続きを読む ] / [ 携帯版 ]

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

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