ふらっとC#,C♯,C#(初心者用) Part88
ツールボックスからメニューをフォームに追加したんですが デザインが何か違います 一般的なメニューのデザインにしたいのですがどうやるのでしょうか?
だから隣の席に居ないって言ってる
数値を3桁区切りの文字列で表したい時に a) 1234.ToString("#,0") b) 1234.ToString("#,##0") どちらも 1,234 になるのですが、何か違いがあるのでしょうか?
>>96 え?
うちの VS2010 だと 1.2 と 1.234 になるけど。。。
質問者の心得
・回答者はあなたの席の隣に居る会社の同僚や先輩、学校の先生や同級生ではありません。
どういう作業を行ってるかわかりませんのでなるべく出せる情報は出しましょう。
・情報を出すと言っても、長々と日本語で解説するのも問題外です。なるべくソースコードを出しましょう。部分的ではなくなるべく全体
・「ご教授ください」とかそんな意味不明な日本語で媚び諂う必要はありません。回答者が怒ってるのは情報が少ないからです。
・場合によってはOSなどに依存することもあるのでその場合は周辺情報も出しましょう。
・ソースコードを出す場合は
>>2 のサイトを使いましょう。
101 :
100 :2012/03/23(金) 00:20:41.73
・
>>94 のような場合はあなたが思ってるイメージを質問者は知ることができません。
脳内を覗き見るエスパーは居ませんので私はこういうイメージにしたいけど実際はこうですと
理想と現実を比較できる画像も提供しましょう
・あとメニューというカタカナではなくコントロール名で質問するほうが早いです
・C#は次の物が開発可能です。ターゲットを明記しましょう。WinForm WPF SilverLight ASP.NET ASP.NET MVC
日本人って空気読むのに慣れすぎてネットでも同じ感覚で質問するよね 一緒の空間にいるわけじゃないのでわからねーよw
103 :
100 :2012/03/23(金) 00:25:11.99
お前らピリピリしすぎ 俺はこんなアホみたいな質問を大いに楽しんでいるぞ
答えないけどね
ここはエスパー養成所
>>99 環境によって違うってことですね。参考になりました。
そんな馬鹿な。そのVSはいくつなの?
本人が納得してるんだから触るなよ
VSのヴァージョンじゃなくてNETフレームワークのヴァージョンが重要なんじゃないの? いずれにせよこんな仕様変更は感心しないが。バグじゃないのかな。
適当にエスパーくらいしてやれよ
それで間違ってても質問者も悪いんだからいいじゃん
>>94 WinFormsならMenuStripを追加したんじゃねーの? Menuをツールボックスに追加してからそれをドロップ
WPFのメニューならそんなものだから諦める
>>111 エスパーすんな
いつまでたっても質問の質があがらねーだろうが
アプリ実行時に必要な .netフレームワークがインストールされてるか調べる ってどうやればできます?
韓国、放送各社が一斉に政治スト 選挙を前に野党支援?
【ソウル=黒田勝弘】4月の総選挙、12月の大統領選挙を前に韓国の放送や通信社などの労組が一斉にストに突入した。李明博政権下で政府・与党に有利な“偏向報道”が増えたとして社長退陣などを要求している。
野党政権の誕生を狙った“政治スト”の色合いが濃く、すでに番組変更など影響が出ている。政治の季節を迎え、与野党対立はマスコミを巻き込み激しさを増しつつある。
ストに入っているのは2大放送のKBS(韓国放送公社)、MBC(文化放送)のほかニュース専門のケーブルテレビ・YTN、唯一の通信社・聯合ニュースなどで、韓国マスコミ界での比重は大きい。
労組側は、各社の社長とも政府の息がかかった人物で、その結果、政府・与党寄りの報道や番組が増え、批判的な記者や制作者は疎外されるなど「言論の自由」が損なわれている−と非難している。
この背景には、KBSやMBCなどの資本や経営陣に政府の一定の“持ち分”があるため、トップの社長人事が政府の意向に左右されやすいということがある。
左派勢力が強かった盧武鉉前政権時代は、KBS社長に親北・左翼系で知られるハンギョレ新聞の論説幹部が抜擢(ばってき)され、MBCでは労組委員長出身者が社長に任命されている。
当時はニュース、番組とも逆に“左翼偏向”が目立ち、保守系の代表紙「朝鮮日報」を目の敵にして不買運動をあおるような番組まであり、保守派から批判が強かった。
このため保守系の李明博政権が登場すると直ちに社長交代となり、報道や番組内容もかなり修正された。しかし今度は左派や野党陣営から不満の声が上がり、政権交代期が近づくにつれ野党支援につながるストにまで突き進んだ。
マスコミ関連労組は親北・左翼色の強い「全国言論労働組合」の傘下にある。
MBCのストはすでに40日を超え、人気の“韓流”ドラマ放送にも支障が出ている。
経営側は政治的な不法ストとし、主導者を解雇、損害賠償を求めるなど強硬で対立は激化している。
(以下ソース)
http://sankei.jp.msn.com/world/news/120322/kor12032221170005-n1.htm
すみません。 vc#で、とある処理が長くなりそうなので別ソースにしたいのですが、 どのように分ければよいのでしょうか。 ググっても全く情報がなくて・・・
↑ソースファイルを分けるという意味です。 すみません。
ニコニコ生放送のタイムシフトをダウンロードするソフトはどう作る?
>>115 レジストリを確認すればOKと書かれてるけど
(アプリ側で)レジストリチェックするのに .NET が必要になる・・・よね
>>117 partial class で別ファイルに書けばイイじゃない
>>111 WPFではないです
すいませんメニューってMenuStripしかないんですがMenuはどうやって追加するのでしょうか?
>>120 ありがとうございます。その語句でぐぐったら、いろいろ情報出てきて参考になりそうです。
>>121 ツールボックス右クリック→アイテムの選択→MainMenu(System.Windows.Forms)にチェック
if()の条件に関数呼び出し書くと長くなって気持ち悪いんだけどどうすればいい
気持ちいいよ?
関数名を短くするか、引数を減らす
ちなみにどんな関数なんだよ エスパーするとたぶん設計の方に問題があるぞそれ
ifの上で一時変数に蓄える if()の中を改行しまくる if()if()if()のようにばらす
>>129 それはC++の時代での話しでしょ、今はほとんどがアンチパターン、設計に問題があることを示唆している
とくにやっちゃいけないのは var result = hoge(); if (!result)
オブジェクト指向、関数型言語、プロパティといった概念への冒涜だから けいおんにイケメンキャラ登場させるくらいの理論崩壊
ゴミみたいな雑談はどうでもいいよ。
使える機能は何使ったっていいだろ
リストビューコントロールを詳細表示にしたとき コラムんのの項目の右端がなくなっても 横縞が続いてるのはどうして?
138 :
デフォルトの名無しさん :2012/03/23(金) 14:57:14.68
System.Drawing.ImageでマルチTIFFを読み込んで枚数を取得してるんですが、ものすごく遅くて困っています・・・ 何か良いライブラリはないでしょうか、お願いします。
libtiffでも呼び出して使え 根本的に.NETの画像の取り扱いはとにかく全部DIBにしてから考えるようになっている マルチフレーム画像だと無圧縮AVI全部メモリに読み込んでるようなもんで重くて当たり前 逆に言えば重さを犠牲に馬鹿でも使えるようにしてんだ
>>131 メッセージボックスそのまま if() に入れたら大変な事になるんですが
データグリッドビューだと右端の終わりで切れてるのに
143 :
デフォルトの名無しさん :2012/03/23(金) 18:12:40.53
Form1からForm2を開いて、 Form2上のテキストボックス10個に数値を入れてもらって OKを押して値の設定をしてもらおうと思っています。 OKを押してもらったときに、各テキストボックスの値が0〜100以外の場合は エラーメッセージを出したいのですが、 内容のチェックするのに、if文を10個繋げるしか無いでしょうか。
>>124 出来ました
助かりました
何でこれが標準でリストに無くてMenuStripがあるのかわかりません
>>145 NumericUpDownコントロール使えば?
ソフトとかでオプション画面ってあるじゃないですか 例えばメモ帳ならメニューバーの書式ー>フォントをクリックするとフォントの画面が出てくるじゃないですか こういう風に本体のフォームとは別に新しいウィンドウを出すのはユーザーコントロールって言うのを使うのか新しくFormを作るのかどっちですか?
149 :
デフォルトの名無しさん :2012/03/23(金) 18:37:11.27
>>145 テキストボックスじゃなくてNumericUpDownコントロール使えば、1−100以外入力できないように設定できるよ
System.Configuration.ConfigurationManager.AppSettings["abc"]; で設定を読み込むときに app.config 以外のファイル名から読み込むようにしたいのですが どこで設定できますか?
SQLiteに接続するサンプルを探すとどれもusing(){}って形で書いてるんですけど このusingっていうのはファイルの先頭に書くものでライブラリをインポートするときに書くものじゃなかったのでしょうか? ググってもいまいちこのusing(){}って形の情報が出てこないのですが これは何を意味するのでしょうか?
154 :
145 :2012/03/23(金) 19:16:04.66
ウインドウが開き終わったら ボタンクリックイベントを発生させる みたいな、ポストでイベントを発生させるのって、C#だとどうやるの?
>>150 WinFormsならControlPaint.DrawButtonなんかで通常のボタンは描けるので
Matrixとか使って回転させれば表示はできる
が、描けるだけじゃ押した時の判定がどうにもならない
その辺はカバーされていない
ユーザーコントロールの作成方法と座標の変換を調べてやってくれ
たぶん初心者だと1ヶ月掛かるか終わらないのどちらか
WPFだとLayoutTransformを設定するだけで回転する
代わりに糞重い
>>155 Shownイベントとかねえか
>>151 AppDomainSetup.ConfigurationFileで設定するようになってるが
メインスレッドはシステムが勝手に作成したAppDomainの中で実行されているので、時すでにお寿司
AppDomainを別に作成して、その中で別のプログラムを動かすという方法なら可能
158 :
155 :2012/03/23(金) 19:38:49.00
>>156 この場合だと shown でいけるけど、イベントをポストさせたいんだわ。
ポストさせるっていうのが方言みたいなのでなんて調べていいかわかんね。
今処理すべき処理がすべて終わったら 呼び出す みたいな。
連鎖させたいってことかなあ 今のところ完了イベントに次々書いていくしかないね TaskもContinueWithってあるけど、何か違う気が 5.0で追加されるasync/awaitでできそうだけど
>>158 SendMessage/PostMessageのポストだろ?
別スレッドからControl.Invokeすれば同じような効果がえられるが
この場合原始的だがWM_APP以上の好きなメッセージをPostMessageしたらいいんじゃねーか
>>158 ポストってPostMessageで処理するってことかな
Control.BeginInvokeが中でPostMessageをトリガーで使ってるみたいだから
BeginInvokeに渡すデリゲートでイベントを発生したら似たようになりそうな気もする・・・けどなんかまんどくさいだけだ
世界最古の土器 1988年、青森県の大平山元遺跡で見つかった土器が、世界最古の土器という事になっています。 1万6500年前(縄文時代前)のものと言われています。 これは、中国や他の国で発見されているものと比較して、群を抜いて古いものです。 発掘がすすめば、さらに古い土器が発見されるかもしれません。 日本最古の木造建築 奈良の「法隆寺」の建築物群。国宝にも指定されています。 法隆寺は、推古天皇や聖徳太子によって建立されたと言われています。日本最古の木造建築として日本の国宝に指定されているだけでなく、世界最古の木造建築としても認知されています。 また、日本を代表する木材「ヒノキ」で造られており、1993年12月には、日本で初めて世界文化遺産に登録されました。 世界最古の王室 現存する世界で一番長い歴史を有する世界最古の王室「天皇家」 海外では歴史や伝統に重い価値を置いています。 世界での天皇家の地位は絶大です。 世界の権力図を示すとこんな感じ。 天皇陛下≧ローマ法王>英国女王>アメリカ大統領etc>日本国首相etc ローマ教皇と同等かやや上回るか。 世界2トップのうちの一人です。 これは日本の宝として大切にしないといけませんね。
SFTPソフトを作るのって結構難しいですか?
165 :
デフォルトの名無しさん :2012/03/23(金) 21:13:56.09
初心者にはきついんじゃない? よくわからんけど
どこを到達点にするかにもよる 厳密を目指すと工数は指数関数的に増える アバウトでいいなら結構どうにかなる
168 :
155 :2012/03/23(金) 21:44:15.61
俺がさっぱりわかってないということがわかった。
いろいろ書いてくれたキーワードで検索してみるわ。ありがと。
>>156 ,161,162
169 :
デフォルトの名無しさん :2012/03/23(金) 22:04:16.71
libtiff教えて頂いてありがとうございます! ただマルチTIFFをページを指定して取得する方法がググっても日本語でないんです どなたか教えてください、お願いします。
その方針ならプログラミング止めた方がいいな
世間の迷惑だ
#include "tiffio.h"
main(int argc, char* argv[])
{
TIFF* tif = TIFFOpen(argv[1], "r");
if (tif) {
int dircount = 0;
do {
dircount++;
} while (TIFFReadDirectory(tif));
printf("%d directories in %s\n", dircount, argv[1]);
TIFFClose(tif);
}
exit(0);
}
http://www.libtiff.org/libtiff.html (公式)からコピーしてきたmultiple imagesの読み方
ちなみにTIFFの構造上の問題で、前から順に読んでいく以外に後ろの要素にアクセスする方法は存在しない
遅いの我慢した方がlibtiffの使い方覚えるより相対的に早く済むかもね…。
N番目のページにアクセスしたいとする TIFFOpenでTIFFファイルを開く 次にTIFFReadDirectoryをN-1回呼び出す 開いた時点で1番目を指しているのでN-1回にする TIFFGetFieldでTIFFTAG_IMAGELENGTHを取得する TIFFTAG_IMAGELENGTHは名前に反して画像の高さ(スキャンライン数)を示す TIFFScanlineSizeで1行のサイズを得る TIFFReadScanlineで1行ずつスキャンラインの数だけ読む でいいかな
>>155 button1.PerformClick();
175 :
デフォルトの名無しさん :2012/03/24(土) 00:46:40.89
>>170 ここC#スレですよね、そんなC/C++のコードそのままコピペされてもわかりません
せめてC#で記述するヒントでももらえませんか?
>>173 つまりC/C++のようにメモリアドレスにアクセスするしか方法がないということなんでしょうか?
176 :
デフォルトの名無しさん :2012/03/24(土) 00:49:25.28
そもそもTIFFReadDirectoryがlibtiff.netだと使えないんですが・・・
そもそもC#と全く関係ないだろう 自分で調べろ
178 :
デフォルトの名無しさん :2012/03/24(土) 01:14:11.91
え?libtiff.netはC/C++のライブラリをC#へ移植したものですよ? C#の弱点である画像処理ライブラリの日本語環境が充実することはC#に関係ないことですか? OpenCVについてももっと日本語ドキュメントがたくさんあればここで質問することもないと思うんですが やはり英語ができないとだめですね、日本からスタートアップが生まれない理由がわかりましたw
他の言語だから読めませんってのはしょうがないが C#使うならせめてVBぐらいは読めるようになったほうがいい
音の再生について質問です。 Stream stream = TitleContainer.OpenStream("test.wav"); でこの後にSoundEffect.FromStream(stream)を入れてるんですが test.wavが開かれてないようで音が出ません。 OpenStreamの後ろの()には相対パスで指定したりもしましたが、音が出ませんでした。 OpenStreamはどうやって使うのでしょうか。
>>178 ここはC#と.NET Frameworkのスレ
サードパーティー製のクラスライブラリは製造元に聞いてくれってのが基本スタンス。
運良く使ってる人や、わざわざ調べてくれる親切な人が居れば答えてもらえるかもね。
答えてもらって当然と思ってるのは、ゆとり教育の弊害かねぇ?プログラミングの適性は無いな。
>>173 ScanlineSizeやReadScanlineしなくても全部読み込んでくれる便利関数が…って、これはlibtiff本家にもあるか。
移植だけあって、そのままC#に持ってきた感じだね。
C#特有と言えばBitmap作るあたりだけど、これはHelpに全部書いてあるな。
>>180 soundEffect = SoundEffect.FromStream(stream);
soundEffect.Play();
182 :
180 :2012/03/24(土) 04:53:32.26
>>181 すみません、ちゃんと書いたほうが良いですね。
Visual Studio 2010を使っていてtest.wavは
Visual Studio 2010\Projects\プロジェクト名\プロジェクト名\sounds\beep.wav
という感じで置かれています。
音声ループを考えていて、音に関する部分抜粋しますが
SoundEffect SE;
SoundEffectInstance SEI;
Stream stream = TitleContainer.OpenStream("test.wav");
SE = SoundEffect.FromStream(stream);
SEI = SE.CreateInstance();
SEI.IsLooped = true;
SEI.Play();
これでデバッグして音声再生しようとすると
Error loading "test.wav". File not found.
と表記されてしまいます。
サードーパーティのクラスライブラリとかそういうの以前の問題で パスがどうなってるかわかってないだけだなw 自分が使いたいwavの名称がbeep.wavなのに 読み込ませようとしてるファイル名称がtest.wavっていうのもあれだし
184 :
180 :2012/03/24(土) 05:01:50.71
>>183 ごめんなさい、スレに書き込む時test.wavって変えただけで
実際はbeep.wavというファイルで保存されててコードもそう書いてます。
おっしゃるとおりでおそらくパスが分かってないんだと思います。
カレントディレクトリがどこなのか分かってないのですが、
多分プロジェクト名(2番目の方)と考えてOpenStream("sounds\test.wav")という形でも試してみたのですが、
やはりダメでした。
exeの絶対パスを取得できるライブラリ使って パスを取得してみ IDE上でデバック有り無しで実行するにしても思ってるパスとは違うから
たぶん ../../sounds/test.wav 相対パスとしてはこうかも
IDE上でテストする場合は
デバッグ情報ありの場合は
プロジェクト\bin\Debug
デバッグ情報なしの場合は
プロジェクト\bin\Release
にビルドしたexeを置いてそこから起動してるので
相対パスを指定する場合は..(ピリオド2個で今のフォルダのひとつ上に戻るの意味)でいくつか戻らないと
>>182 の
プロジェクト名\sounds
にはいけない
189 :
180 :2012/03/24(土) 05:33:24.16
【中国BBS】中国ではJ−POPが飛躍、K−POPは?
「アジアでのJ−POPの活躍で、K−POPのライバルとなるのか?」というスレッドが立てられた。
スレ主のこの質問に対して様々な意見が寄せられている。以下に日本語に翻訳して紹介する。( )は編集部による素朴な感想。
● スレ主:浅浅笑
日本の漫画、アニメ、音楽が今、インドネシアの若者の間で人気を集めている。日本文化祭が2月にインドネシアの首都ジャカルタで行われた。
これは日本の大衆文化を紹介するイベントで、AKB48と現地の姉妹団体JKT48が共演し、イベントを盛り上げた。
韓国メディアは、J−POPの反撃と題する報道を行い、J−POPはアジアに照準を定めはじめ、K−POPのライバルとなるかもしれないと伝えた。
● spidercc
J−POPはK−POPに完勝です。
● 2347771
日本の音楽は1980年代にはすでに上海で人気に火がついていましたけど。韓国なんて比較にもなりませんが。
(谷村新司などはずいぶん人気があったようですね)
● MakiのLove
K−POPを倒そうと思ったら、韓国に学ばないと。官民あげて推進しないとだよ。
(確かに韓国は官民一体で韓流を推し進めていますね)
● anly_zjc
J−POPの方がK−POPよりもいいに決まっている。
● applepiepie11
K−POPは大幅な赤字が出ている。文化産業の収入に対して、推進のための支出が多いのだ。
個人でも、文化でも、芸能でも、みんな赤字。黒字になったことがない。
これが真相さ。政府の援助頼みで、コンサートも赤字。欧米や日本音楽のコピーばかりで、
K−POPというよりCOPY−POPだよ。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0323&f=national_0323_036.shtml
一定時間毎に変数の値をCSVファイルに追加追加で書き出していきたいのですが、 どうやったらよいのかとっかかりすら全く思い浮かばず、手も付けられない状態です。 どこかに概要だけでもいいので作り方の考え方が載ってるサイト等 ご存じでしょうか。
MSDNとか詳しい。サンプルもあったはず。
タイマーを設定する タイマーが呼ばれたらCSVフォーマットの文字列を作る タブでもコロン区切りでもいいけど+やString.Formatでも使って できたらFile.AppendAllTextで追記 基礎過ぎて解説とかされないレベルと思う
プログラミングはコンピュータに手順を解説してやる作業だ
>>131 やばいオレこればっかりやってるw
なんで?
197 :
191 :2012/03/24(土) 15:04:44.39
ありがとうございました。 とっかかりのキーワードを教えていただいたので、何とかなりそうです。
>>195 長くなるからじゃね?
一番ながいMessageBox.Showのオーバーロードだと
if( DialogResult.OK == MessageBox.Show( this, "text", "caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, @"c:\hoge", HelpNavigator.AssociateIndex, obj ) ){...
みたいな
興奮する
ふつう改行するだろ if( DialogResult.OK == MessageBox.Show( this, "text", "caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, @"c:\hoge", HelpNavigator.AssociateIndex, obj ) ){ ... } あ、タブは適当に脳内で入れてくれ
ifの中に入れる理由が分からない。 保守性ガン無視ですか?
理由は分かるよ。賛同はしないけどね。 世の中には行数が少ないことは常に可読性の面でよいことだと思ってる人がいるんですよ。
205 :
デフォルトの名無しさん :2012/03/24(土) 18:00:48.96
if()に入れるかどうかは、中身をデバッグするかどうかで決めるな 長さは気にしないからMessageBoxみたいなのはカッコに入れちまう
>>198 だって今どきの液晶なら一行で表示できるだろ
老眼の人は無理だろうけど
それはゆとりらしい視点だな。
var resultNG = hoge(); if(!resultNG) こんな感じの命名をしない限りは問題ないね
209 :
デフォルトの名無しさん :2012/03/24(土) 18:21:17.25
改行すると余計見づらくなる場合もあるしね たとえばフィールドなどをVSで「すべての参照を検索」する場合、 どういう文脈で使っているのか一目で分からなくなるし
211 :
デフォルトの名無しさん :2012/03/24(土) 18:34:14.51
private void open(){ using (SQLiteConnectionconn = new SQLiteConnection("Data Source=C:\test.db")) { conn.Open(); } } C#でSQLiteの公式サイトの.NETのDLLを使ってこう書いたんですが C:\test.dbが無い状態でopen()を実行すると例外エラーが出ます try〜catchをシンプルに書けるのがusingだと思ったんですがどう修正したらいいでしょうか?
try-catch じゃなくてDisposeな
ということは try{ using (SQLiteConnectionconn = new SQLiteConnection("Data Source=C:\test.db")) { conn.Open(); } } }catch(Exception error){ } って書き方にしたらOKでしょうか?
フォームにMenuStripとSplitContainarをおきました SplitContainarのパネル1とパネル2にそれぞれTextBoxを置いてDockをFillにしました するとMenuStripの領域とTextBoxの領域が被ります これはどうやって被らないように出来ますか?
>>214 Zオーダーが君の思ってる状態になってないんじゃないの?
c#の練習でweb browserを使って簡単なブラウザを作ってるんだけど javascriptのconfirmって確認ダイアログを自動でokする機能を付けようとして躓いた ググるとscriptからconfirmを取り除け Microsoft HTML Object Libraryを使え ってあるんだけど、SetAttributeは見つけたけどRemoveAttributeはないし MSHTMLは参考にしたソースでエラーが出てどうしても動くようにできない 何か方法ないですか…
217 :
デフォルトの名無しさん :2012/03/24(土) 18:55:08.89
kj
>>215 すいませんZから始まるプロパティー名が右下のプロパティ画面に入ってないのですが
それはどこから確認するのでしょうか?
>>213 そこでcatchしていいのならそれでいい
>>206 一行にまとめられる記述は老人を馬鹿にしてでも一行にまとめなきゃいけないの?
「表示」メニューから「タブオーダー」を選ぶ. たいていFillをNoneにしてから右クリックして「最背面に移動」とかすればそのうちに直るw
224 :
デフォルトの名無しさん :2012/03/24(土) 19:02:26.13
>>222 それは面倒すぎw
デザイナーが触る分離部分をちょろっといじればいいだけなんだけどねw
>>219 ドキュメントアウトライン使えばよくね?
>>218 xy座標でもxやyからじゃなくてtopやleftだろ
zは奥行きだ BringtoFront()やSendtoBack()で遊んでみろ
>>220 >>228 これでもいいけどもっと良い方法があるということでしょうか?
>クリーンアップ コードでは try-finally を使用し、try-catch の使用は避けてください。 適切に記述された例外コードでは、try-finally の方が try-catch よりもはるかに一般的です。
try-finallyで書き換えたらいいってことでしょうか?
230 :
218 :2012/03/24(土) 20:09:50.24
いろいろアドバイスがついててパニックになりました
>>229 228が言ってるのはこっちだろう
>System.Exception や System.SystemException などの不特定の例外をアプリケーション コードでキャッチして、エラーを処理しないようにしてください。
>アプリケーションでエラーを処理することが許容される場合もありますが、そのような場合はごくまれです。
213が言っているのは
>特定の例外が特定のコンテキストでスローされる理由を把握できている場合は、その例外をキャッチするようにしてください。
>回復可能な例外だけをキャッチする必要があります。
using (SQLiteConnection conn = new SQLiteConnection("Data Source=C:\test.db")){ conn.Open(); } は try{ SQLiteConnection conn = new SQLiteConnection("Data Source=C:\test.db"); conn.Open(); } finally{ conn.Dispose();//Closeかも } って意味ね だから今回の例でusing(try-finally)しちゃうとOpen後に即Closeされるよ Open時のエラーを捕まえたいなら普通にtry-catchでいい
>>231 >>232 理解できました
catchにExceptionやSystemExceptionを使わないでそこで起き得るエラーコードを限定的に書いて処理するようにします
TabControlでAlignmentをBottom、AppearanceをButtonsにすると、TabPageの高さが0になって変更できないのは仕様(´・_・`)?
ここで質問して解決できたためしないよ ここでグタグダやってるうちにサクッとググったほうがいい ググって理解できないならなおさらここの回答じゃ理解できない
237 :
デフォルトの名無しさん :2012/03/24(土) 22:10:53.09
2012-03-24T20:00:40+09:00 みたいな文字列を普通の日付に変える方法教えろ
238 :
デフォルトの名無しさん :2012/03/24(土) 22:12:55.05
がんばれ^^
それは普通の日付じゃなくて異常な日付なんすか^^ 13月32日みたいにおかしくないように見えるけど^^
既に普通の日付だよな。
>>221 空気読めよ
老人は消え去れって言われてるの
243 :
デフォルトの名無しさん :2012/03/24(土) 22:28:57.53
>>239 Tとか+とか書いてあるから普通じゃない
規則で1行80文字ないし100文字に制限されてるから
どこかの言語みたいなIDEに頼って長い名前をつける言語は厳しいなあ
>>243 少なくとも標準の書式指定に存在するのに普通じゃないってどこの常識の話?
http://msdn.microsoft.com/ja-jp/library/az4se3k1%28v=vs.80%29.aspx >ラウンド トリップする日付と時刻のパターン
>タイム ゾーン情報を保持するパターンを使用するカスタム DateTime 書式指定文字列を表します。
>このパターンは、Kind プロパティを含めた DateTime の形式をテキストでラウンド トリップするように意図されています。
>書式設定された文字列は、Parse または ParseExact を正しい Kind プロパティ値を指定して変換前の文字列に戻ることができます。
>カスタム書式指定文字列は、"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK" です。
>この指定子のパターンは、定義済みの標準です。したがって、使用されるカルチャまたは指定された書式プロバイダに関係なく、常に同じです。
>(o) Roundtrip (local):. . . . 2006-04-17T14:22:48.2698750-07:00
うざ
最近のプログラマーは提供する側じゃなく利用者側の思考なのね
ゆとりって怖い
おまえは金を出して作ってもらう方がいいよ アホは作るだけ無駄だから土下座して頼むしかない
249 :
デフォルトの名無しさん :2012/03/25(日) 00:54:33.14
>>181 英語のリファレンスマニュアルを四苦八苦しながら読んでマルチページの取得に成功しました。
ただ、言わせてもらえれば、初めて触れるライブラリについて少しでも情報が欲しくて質問している人間に、素養がないとかゆとりとかこのスレの意義ってなんですか?
初心者用って看板外して、初心者をいじめるてニヤニヤするってスレタイに変えたらどうですか?
プログラムって、ちょっとしたコツやちょっとしたヒントで前に進めますけど、そのヒントになかなか気づけなかったり得られないから難しいんですよね。
人に教えるってことは自分自身に確認したり、新たな発見あったりとお互いWin - Winだと思うんですが。
このスレでまともに質問に回答してる人ってぜんぜん見えないですね。
まぁ私は答えにたどり着きましたが、これじゃフィードバックする気にならないですね
粘着質なのは分かったから黙っててくれ
なんでこここんなに香ばしいの?
このスレからの卒業おめでとう もうこんな所に戻って来るんじゃないぞ いや冗談じゃなくマジで ここにいるとスポイルされっから
2ちゃんに書き込んでる時点でry
>>249 こういうレス見るとゆとりなんだなぁって思うわ
具体的にどこが?
>>249 匿名で書き込んどいて真摯に答えろだなんてなめたこと言ってんじゃねーよゆとりが
ふぁびょるやつはゆとり以下
レス早いね ふぁびょちゃってた?
春休みだぜ 回答者は腹くくれよ
春休みはいつにも増して酷いな
Version.Parse("9.9.0.0");でいけた。スマソ
win-winと言うからにはおまえも何か提供できるのか おねだり側の分際で自惚れるのも程々にしておけよ 質問スレは星の数ほどあるけどな、結局最後に恨み節を吐く奴は自分の望む回答が得られたかどうかが全てだ そんな奴は腐るほど見てきた ひどい奴はこんなスレ意味ねえから潰せと来るもんだ 社会に出る前にお前の自己中心的な腐った頭から潰しておけ
つまんねー人間ほどダラダラと言い訳を述べるよなあーお前も
>>249 も
うまく作れなくてイライラしてるんだろうけど巻き込むなよ
269 :
デフォルトの名無しさん :2012/03/25(日) 03:46:00.98
配列コピーするのに↓だとできるのに static string[,] ArrayCopy(string[,] array1, int sourceIndex, int destinationIndex, int length) { string[,] array2 = new string[array1.GetLength(0), array1.GetLength(1)]; for (int a = 0; a < length; a++) { for (int b = 0; b < array1.GetLength(1); b++) { array2[a + destinationIndex, b] = array1[a + sourceIndex,b]; } } return array2; } ↓だとできないのはなぜか教えろ static string[,] ArrayCopy(string[,] array1, int sourceIndex, int destinationIndex, int length,string[,]array2) { for (int a = 0; a < length; a++) { for (int b = 0; b < array1.GetLength(1); b++) { array2[a + destinationIndex, b] = array1[a + sourceIndex,b]; } } return array2; }
270 :
269 :2012/03/25(日) 03:48:50.45
下のarray1はarray2と同じ
272 :
デフォルトの名無しさん :2012/03/25(日) 04:07:34.29
やり方わかった 引数変えると元の配列が変わるのか なんでこんなにくそなんだ
private class Person { public String personText = "Person"; } private class Student : Person { private String studentText = "Student"; public String getText() { return (personText + studentText); } } public class Entry { public static void test(Person p) { Student s = p as Student; Console.Write(s.getText()); } } これで、Entry.testをコールした後、GCでstudentTextは解放されるのでしょうか?
275 :
274 :2012/03/25(日) 04:13:40.53
>>274 作ってるやつのPerson的クラスで画像読み込みとかしようと考えてて、
メモリリークで落ちるのが怖くて
276 :
デフォルトの名無しさん :2012/03/25(日) 04:15:30.11
その程度のテキストでどれだけメモリ食うんだよw
277 :
273 :2012/03/25(日) 04:32:06.99
>>276 サイズに関わらずメモリリークを意識すべきだと思うけどな
調べてたら分かった。
キャストしても参照の型が変わるだけで、コンストラクタすら呼ばれないみたい
278 :
デフォルトの名無しさん :2012/03/25(日) 04:34:08.70
この程度のテキストなんて意識してもしかたないよw むしろがっつりメモリ食う方でちゃんと計算すればいいだけ
>>273 解放されない。
コンパイル時に確定するstringはメタデータとして読み込まれるので、
アセンブリがロードされた時にメモリ上に確保されて、AppDomainが破棄されるまでは残る。
文字列インターン プールから取ってきてるので大量にPersonのインスタンス作っても、消費するのは1個分だけ。
まぁ、著しく常識外れな長さの文字列をコードに埋め込まなければ気にする必要はないね。
280 :
273 :2012/03/25(日) 05:28:53.47
>>279 文字列インターン プールってのは初耳だった。
裏でこんなことやってたのか。
勉強になった。ありがとう。
281 :
デフォルトの名無しさん :2012/03/25(日) 06:10:22.04
XmlWriterでDispose()しようとすると「アクセス出来ない保護レベルです」と怒られます。 原因とその解決法ご存知の方いらっしゃいましたらご回答ください。 当方VS2010/.Net Framework4です。
コードだせ
283 :
デフォルトの名無しさん :2012/03/25(日) 06:29:08.53
XmlWriterSettings SaverHelper = new XmlWriterSettings(); SaverHelper.Indent = true; SaverHelper.IndentChars = " "; SaverHelper.Encoding = Encoding.UTF8; XmlWriter Saver = XmlWriter.Create(saveServer.FileName, SaverHelper); Saver.Flush(); Saver.Close(); Saver = XmlWriter.Dispose(true); ↑ ここに赤波線 関数はprivate voidです 保護レベルとなると違うところに原因があるような・・・
protected メソッドじゃん
285 :
デフォルトの名無しさん :2012/03/25(日) 06:34:30.13
falseは試したの?
287 :
デフォルトの名無しさん :2012/03/25(日) 06:39:50.76
ダメでした なんだかなぁ・・・
288 :
デフォルトの名無しさん :2012/03/25(日) 06:40:05.27
289 :
デフォルトの名無しさん :2012/03/25(日) 06:43:04.44
Close()でいいんですか?
>Saver = XmlWriter.Dispose(true); XmlWriterってインスタンスじゃなくて型じゃないか。 ↑が呼ぼうとしてるのは static XmlWriter XmlWriter.Dispose( bool ) というメソッドであって、そんなものは存在しない
292 :
デフォルトの名無しさん :2012/03/25(日) 07:48:27.19
と言われて
Saver.Dispose();
でやってみるも「アクセスできない保護レベル」と怒られる。
>>288 ありがとうございました
全部手探り状態なんです・・・
どうも失礼しました・・・
Closeは内部でDisposeしてるんだからわざわざDisposeしなおす必要はないんじゃないか?
なんかいろいろ失礼しました ちゃんと勉強します・・・
297 :
デフォルトの名無しさん :2012/03/25(日) 10:21:56.33
その前に
>>288 を提示されてそれでもまだ拘るところがダメだけどね
MSの中の人がDisposeしてないんだしいらないのかなあって普通想像するだろw
その考え方はお勧めできん サンプルはサンプルであってそのまま実用できるとは限らない 昔のGCHandleのサンプルみたいにバグってるケースもあるし
299 :
デフォルトの名無しさん :2012/03/25(日) 10:26:43.96
バグってたらバグってたでいいじゃないか MSの責任にできるんだしw
MSDNには面責が書かれてるのにMSの責任とは至極滑稽
301 :
デフォルトの名無しさん :2012/03/25(日) 10:38:36.51
単純に言い訳ってことだよw あーMSのばぐっすね・・っていえるのと そうじゃないのでは大きな差がある
誰を想定してるんだろうか…?
2〜3秒のwavファイルが30個あります これを空なく順番に再生する場合、wavを連結して再生するほうがいいですか?
「空」が「無音」という意味なら、連結+無音部分の削除が必要だろうな。
簡単に済ませたいだろうしそれでおkじゃね
306 :
デフォルトの名無しさん :2012/03/25(日) 11:00:24.17
表現が曖昧でよくわからんな 定期的に同じネタで質問がくる「任意のタイミングでズレなく順番に再生したい」 というのであれば合成しとけってことだしw
合成なんかDirectXに投げれば勝手にやってくれる。
あれっすよ ボーカロイドみたいのが作りたいんですよ
C#でそんな低レベルなところ触れたっけ?
Waveファイルの加工が低レベルなのか? unsafeじゃないとスピードでないけど。
311 :
デフォルトの名無しさん :2012/03/25(日) 11:12:17.91
>>310 だって編集過程でボカロに喋らせる総時間分のwav
を全部確保するの無駄だろ
適度なタイミングで流し込んだ方がいい
なら全部確保しなきゃいい。 おまえが何に悩んでるかさっぱり分からん。
間違えました ボーカロイドじゃなくて読み上げるやつです AquesTalkみたいにしゃべらせるだけのがつくりたいのです
それであいうえお順をwavに録音して 大体30文字ぐらい読ませればいいとおもってるんですが
DirectSound使うならManagedかSlimDXかねえ
316 :
デフォルトの名無しさん :2012/03/25(日) 11:20:07.11
44.1kHz 16bit ステレオ でどれくらいのメモリが必要か計算してみなよ
PC-6001mkIIについてたTALK命令がほしいのか。 WindowsについてるSpeechAPIじゃダメなのか?
それで目的を達成できる能力があればいいけどね 達成できなきゃ方法がどんなに効率よかろうが生産ゼロだぜ 究極の非効率
ライブラリ持ってきて使うのがいいな
System.Speech
棒読みちゃんを使えばいい
>>320 すまんw
流れ的にネタかと思ったんだが本当にあるんだなw
SpeechAPIとSystem.Speechってやつで両方やってみます ありがとうございます
using System.Speech.Synthesis; SpeechSynthesizer synth = new SpeechSynthesizer(); synth.Speak("google let kasu"); これだけでしゃべったw
やっぱ遊ぶよなw System.Speech.Synthesis.SpeechSynthesizer ss = new System.Speech.Synthesis.SpeechSynthesizer(); ss.Volume = 50; ss.Speak( "cow wow zoo toe big come, me zoo no, auto." );
VoiceChangeメソッド使った?
// これは動く using (StreamWriter sw = File.AppendText(filename)) { sw.WriteLine("This"); sw.WriteLine("is Extra"); sw.WriteLine("Text"); } File.AppendAllText(filename,"123456789"); File.AppendAllText(filename, "abcdefg"); // これは動かない。なぜ? try { //w = File.AppendText(filename); w = File.Open(filename, FileMode.OpenOrCreate); // ファイルを読み書き可で開く。無ければ作成する。 IsOpen = true; } catch { IsOpen = false; } w.Write("123456"); w.WriteLine("123456789");
catchのあとの括弧?
みづれぇ 何だ、Openの返値型の質問か?
すげえspeech
C#にこんな力があったなんて でも発音が外人だあ!
SelectVoiceで日本語も入ってればできるみたいよ
あ、日本語入れればいいのかと思って(おまぴー)っていれたら何もいってくれない(´・ω・`)ショボーン さすがマイクロソフトちゃんとNGワードがあるのね
な、なんだと(`・ω・´) シャキーン
英語版特に問題ないのに
フォント名みたいに音声ファイル?かエンジンはあるみたいね
338 :
デフォルトの名無しさん :2012/03/25(日) 12:56:03.65
using System; using System.Speech.Synthesis; class speakprogram { public static void Main() { int i = 1; while (i == 1) { i = 0; Console.WriteLine("話させたい文章を入力してください"); string word = Console.ReadLine(); SpeechSynthesizer ss = new SpeechSynthesizer(); ss.Volume = 100; ss.Speak(word); Console.WriteLine("続けたい場合はyを入力してください"); if (Console.ReadLine() == "y") { i = 1; } } } }
なんでそこで i を使うんだ
なんだっていいだろ
書き捨てのコードにケチつけてんじゃねーよ
>>328 wはなんなんだ
File.Openの戻り値はFileStreamだよ
名前の問題じゃないだろ、intが出てくるのはなぜよ。
知るかよハゲ
booleanでいいだろ
変なことせずにdo whileでいいじゃないか
みんなアドバイスありがとう
348 :
デフォルトの名無しさん :2012/03/25(日) 14:25:51.31
無限ループにしてy以外ならbreakするのが普通だよな
do { } while (Console.ReadLine() == "y"); これでいいかな
while(true) { //実行するコード Console.WriteLine("続けますか?\r\n(y/n)"); if(Console.ReadLine()=="y") break; }
while(true) { //実行するコード Console.WriteLine("続ける場合はyを〜"); if(!(Console.ReadLine()=="y")) break; } こうだった
for(;;) { ... break; }
>>351 do
{
//実行するコード
Console.WriteLine("続ける場合はyを〜");
}
while (Console.ReadLine().Equals("y"));
は?
タスクバーのプログレスバーもおもろい
やさしいC#という本を買ってきて勉強を始めました。 Lesson2の2.2 フォームでフォームのタイトルを変更するプログラムが動きました。 これが動く時にDOSプロンプトも一緒に動いているのですが、Windowsのフォーム だけを動かすことはできないのですか?
フォームアプリケーションとかコンソールアプリケーションとかの話か?
>>355 知らんけど気にせず進めろ。
そのうちできるようになるだろ。
結局やさしくねーじゃんか コードをテンプレのサイトに載せてみ
作者のページらしきところにコード一式があるな。 コンソールアプリのプロジェクトからフォームを作って表示させてるんだろうな。
>>356 空のプロジェクトを選んで、コードファイルを追加してソースを記述しています。
SystemとSystem.Windows.Formsを「参照を追加する」で開発環境のプロジェクトに追加してます。
>>355 ありがとう
>>358 コードを書きます
using System.Windows.Forms;
class Samle2
{
public static void Main()
{
Form fm;
fm = new Form();
fm.Text = "ようこそC#へ!";
Application.Run(fm);
}
}
ああ、いってることがわかった。 ウインドウズのプログラム組みたいのに何でDOSが表示されるんじゃー!かっこわるいわって事ね 普通に新しいプロジェクト→winフォームアプリケーションで普通のウインドウアプリ作れるよ
優しくないとわからない人には無理ってことか 俺には無理か・・・
google翻訳でも自動で開いて喋らしとけ
ここはすでにC#に面白いことをしゃべらせる為のスレになったのだ
C#関係ないし
みんなでなんか作らない?
著作権フリーな2次元美少女が歌うソフトを
>>361 ありがとう。
winフォームアプリケーションで作ってみたのですが、
コードをどこに入力したらいいかわかりません。難しいです。
>>366 ありがとうございます。この方法でMS-DOSが出なくなりました。
すばらしいです。本当にありがとう。
懐かしい言葉だな >MS-DOS
>>370 フォームダブルクリックすればForm1_Load()に飛ぶだろ
それがフォームが最初に表示されたタイミングで呼ばれる関数だから適当に書け
他にもサイズが変わった時とかマウスがクリックされたときとかあるからイベントで調べろ
ツールボックスから適当にボタンとか配置してそのイベントを設定するのもいい
>>370 winフォームアプリケーションのときはフォームのデザイン画をダブルクリックしてできるメソッドに
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "ようこそC#へ!";
}
と入力でok
>>370 MS-DOSw
本当に初心者なんですね。
ばかにして楽しい人はとってもかわいそう
MS-DOS時代からPCいじってるのに初心者か
>>370 だんだん知識がついてくるとここの連中のように知らない奴を馬鹿にするようになる場合もあるから気をつけて
ここにいると馬鹿にした回答多いからまともに続けたかったら他の掲示板の方がいいよ
まあ、馬鹿にする奴を恨むより馬鹿にされる自分を情けないと考えるタイプでないと プログラマには向かないとは思うんだけどね。 プログラマだけでなく、ある程度知的能力を要求される仕事はたぶん全部そう。
C#でAndroidアプリが作れたらな・・・・ Java難しくて結局C#で勉強
作れるよ
kwsk
つ Mono for Android
うはw有料かwしかも4万かw高いw 趣味でお金払うのはきついな
普通趣味というのはお金がかかるものだが
C#でMacってできる?
しかもVC#2010Expressじゃできねえwwwww
関数でエラーが起きた場合 エラーコードを戻すのと 例外作るののどっちがいい?
>>389 基本的に例外
戻り値にエラーコードを含めるのはアリ(失敗した場合はnullとか、数値返すメソッドで失敗時には-1返すとか)
エラーコード専用の戻り値はboolなら許すが数値やenumはナシだな
システム異常以外は例外を返さないほうがいいよ。
例外は遅いし呼ぶ側のコードがごちゃごちゃするめ
394 :
デフォルトの名無しさん :2012/03/25(日) 23:18:03.56
深い階層でエラーが発生して、それを数段上の階層で捕まえたいときは有効ではあるな エラーのリレー考え無くてもキャッチできるし
どうでもいいことには必死にレスするのな
397 :
デフォルトの名無しさん :2012/03/26(月) 00:30:50.94
そういやListViewのownerdrawのバグについて聞いたけど無反応だったな 結局自分で何とかしたが
398 :
デフォルトの名無しさん :2012/03/26(月) 02:33:34.30
クラスって使う意味あるの? C#のクラスになってるのは使いにくい 普通のメソッドのほうがいいだろ
399 :
デフォルトの名無しさん :2012/03/26(月) 02:34:51.08
文字列ダウンロードするにはこんなめんどくさいことしないといけない WebClient wc = new WebClient(); Stream st = wc.OpenRead(url); Encoding enc = Encoding.GetEncoding(encoding); StreamReader sr = new StreamReader(st, enc); string html = sr.ReadToEnd(); return html;
メソッドって使う意味あるの? C#のメソッドになってるのは使いにくい 普通のクラスのほうがいいだろ
401 :
デフォルトの名無しさん :2012/03/26(月) 02:38:07.13
N88BASICでもやってろ
今ならプチコンがお勧め
ちんこ?
ちんこちゃうプチンコや!
おいっ
407 :
デフォルトの名無しさん :2012/03/26(月) 04:46:03.20
よく見かける+=(o,e)=>って記述なんなの? ソースコピって参考にしようとすると毎回エラーなんだけど、テストもしないで公開してるの? 顔文字のつもりなの?
(o,e)どうもこんにちは 顔文字・・・?
+= まではデリゲート関連でwinform関連のコントロールのイベントハンドラ を設定するのに使う その後ろはラムダ式 まあイベントハンドラに設定するメソッドをラムダ式で簡略化して書ける
なるほどVisual C# 2008以降か動かんはずだわ じゃあ2005ならどう書けばいいのさ (object sender, EventArgs e)?
>>412 うん
その辺の記述を略しただけなのでイベントハンドラなどで使う
書式に戻すしかない
型推論とかいろいろ動いてるからちと面倒だけどw
>>414 ありがとう
長いクラスの中の顔文字を標準書式に戻さんといかんのか…面倒すぐる
イベントハンドラの場合はIDEだろ+=のあとスペースキーTABTABで メソッドを勝手に用意してくれるよ
IDEだろ・・・x IDEだと・・・◎
自分でControl宣言して作る人にとっては必須技術
やってみた。自動コード挿入なんてあったのか 初めて知った…おもしろい
VisualStudio2010 ExplessのC#でやってますが、 Explessでない本物のC#では何ができるの?
C#は一緒だよw Explessがあるなしはエディションの違いだよw IDEの付属機能を減らして言語単体で無料公開してるのがExpless 上位のVSはExplessに無い支援機能が付いてる 各エディションの違いを調べみなよ .net関連はMSとしては囲い込み戦略でかなり大判ぶるまいなので Explessで十分 VC++になるとそうもいかないけど
422 :
デフォルトの名無しさん :2012/03/26(月) 07:11:43.03
Exp'r'ess
>>399 string html = sr.ReadToEnd();
return html;
ローカル変数返すなよ
425 :
デフォルトの名無しさん :2012/03/26(月) 08:00:07.59
C/C++にしても戻しが構造体なら返してかまわない(コピー取られるから) 何の言語の話だろう?
newして戻すとdelete責任の所在がうんたらって話では
なんのためのGCだよ
ローカルがダメなのはローカル変数をさしてるポインタ返す時くらいだろ
Cでもそんなことする奴いないから、思いつきもしなかった。
>>424 が問題になる理由がわからんw
string htmlは参照だろw
それをreturnするってことはhtmlのコピーが渡されるだけなので
sr.ReadToEnd();が返したどこかにおいてあるstringの参照には
変わりないので問題になりようがない
Cのころは char *hoge() { char* buff[256]; strcpy(buff, "hoge"); return buff; } とかよくやってたな。
435 :
デフォルトの名無しさん :2012/03/26(月) 10:58:17.29
>>433 いや、stringは特殊だから、値が変わらない内は使い回しされると思うが
436 :
デフォルトの名無しさん :2012/03/26(月) 10:59:52.38
意味がわからんww stringの中味はこの際どうでもいいんだよ stringが値型か参照型かどうかだよw
c#では言語仕様的にスレチ。 恥ずかしい指摘した奴の言い訳はもういらないから。
やっぱdllを読み込んで使えるようになりたいのでC言語を勉強し始めましたが難しいですね
>>430 8ではフォルダーのファイルを取得することもできないそうだからそういうのに対応してんじゃね?
あとメトロ対応とか
441 :
デフォルトの名無しさん :2012/03/26(月) 11:32:44.78
>>436 stringは参照型だが、値型のような振る舞いをする特殊な型ですw
haha
uwscみたいなのを作りたいんですが ヒントをください
何がわからないのかヒントをください
つ ここともうひとつのスレの過去ログを調べろ
開発するとなるとかなり高度なので、 uwscを使ったほうが便利で高機能で信頼性が高いです。
プロジェクト作っただけでまったくどう作っていいかわからないならまだスキルが足りない
とりあえずテキストファイルに msgbox "Hello World" って書いてあったら MessageBox.Show("Hello World"); を実行するところからはじめたいのです
if( str == "msgbox \"Hello World\"" ) { MessageBox.Show("Hello World"); }
でもそれだと文字定数がHello Worldじゃないとダメじゃないですか "This is the pen"のときもあります
451 :
デフォルトの名無しさん :2012/03/26(月) 13:46:27.13
>>451 すいませんモリタポ買ってないため過去ログがみれないのです・・・・
ちょっとやることが多すぎる、掲示板のやりとりじゃ無理
お願いします見捨てないでくだしあ
動揺しててタイプミスしました kづあしあじゃなくてくださいです
456 :
デフォルトの名無しさん :2012/03/26(月) 13:51:50.62
君の質問はかなりの規模のソフトの作り方を一から教えろってレベルで このスレで扱えるレベルじゃないしuwscのようなソフトの作り方に対する回答は 過去スレにでてるから読めって話 教えてくんかまう暇は無い
ほんとksだなこのスレ
458 :
デフォルトの名無しさん :2012/03/26(月) 13:56:46.60
そう思ってくれてかまいませんよ 既存のそこそこの規模のソフトの作り方を一から教えてくれる人がどこにいるんだか
ウィンドウズコントロールでTREEVIEWを動的に展開する方法って、何かないでしょうか? (コントロールなんで、NODEは使えません)
ググれば出るよ
ちょっと言っている意味がわからない
c#以前の問題な質問ばかりだな
エスパーを試みると、外部アプリ等の既存のTreeViewをC#のコードから展開させたい、ということではないか? そうだと仮定すると該当プロセス内にメモリ確保したり大変そう
>>464 そういうことなのか?
日本語でOK的な感じだったので触れなかったw
ガソリン入れて鍵させば車が動くくらいの知識しかないやつが車を作ろうとしてるのと同じくらいのレベルだな
どうやってプログラムが動いてるのかすらわかってないんじゃね?
どうやってプログラムが動いてるのかちゃんと説明できる人がいるとも思えないけどね
c#の質問だけにしてくれ プログラムの基礎知識から教えてやる余裕ないわ
コピペで使えるサンプル書いてやってもおそらく動かせないだろうな
ググって理解できない頭じゃここで聞いても無駄無駄
>>1 に書いてあるようにもうちょっと優しくしてやりなよ
>>448 はindexOfかsplit辺りをググれでいいんじゃね?
>>459 はゴメン意味がわからない
473 :
61 :2012/03/26(月) 16:37:56.16
うるせーks
ググって全部理解できる奴しか相手にしないならここで質問する意味がないな つまりググれと言っている奴はこのスレは質問禁止と遠まわしに言っている自治厨
476 :
デフォルトの名無しさん :2012/03/26(月) 19:08:33.68
>>475 自分の要求が通らなかったからって切れるんじゃないよボウヤ
ソフト1本まるまる作り方なんて相手してられるか
構文解析とか研究題材になるような巨大なジャンルなんて特に
ああそう思ってくれて構わんよ その方がこっちとしても都合がいい
WinWinもそうだが、多少は自分で考えてるか?って気になるよな 質問したあと何をしている? 答えが付くのを茶しばいて待ってるなら死んだ方がいいぞ
都合ってなんの都合?
ご都合主義
PCの基本操作すらまともにわかってないようなやつの質問が多すぎる 最低限の基礎知識くらい身につけてから質問しろよ これでもかなり譲歩してるほうだと思うぞ 社会人なら言ってる意味わかるよな?
何で君に気を使わないといけないのかを200字以内にまとめよ
2ちゃんで学べると思ってる時点で頭おかしい スレタイ真に受けてるなら君にプログラミングは早すぎる
学生かもしんないじゃん まあソレはおいといて その都度調べればいいと思って入門すら読んでない奴は質問すべきでないとは思うぞ
しね
夢と目標と手の届く範囲は区別しろなんて厨房に説教してるみたいだ
プログラムと関係ない荒らしはメンヘラ
488 :
デフォルトの名無しさん :2012/03/26(月) 19:37:57.10
目標が大きいのはいいんだが最初から他人に依存しっぱなしでは 他人に作らせてるだけじゃないか 他人に作らせたければお金を払ってプロを雇うべきだな
構文解析を調べてみるといい、のひと言も言えずに、無理出なおせ帰れググれC#以前の問題だもんな 別に1から10まで説明しきれないから罵ってやる、じゃなくて黙ってるかキーワードだけでもいいのに荒んだ奴だ わざわざ初心者用スレに張り付いているあたり初心者を罵って優越感に浸りたいという奴に思える 低レベルな会話したくなかったら上級者用でも作って行けばいいのに
じゃあお前が答えてやれよ
おまいらもちつけ
最終的には答えたい奴が答えろで終了だよね
公衆の面前で馬鹿晒したら指差されるのは必然なので 煽りは諦めて下さい 必然なのです
いいからおちつけ
わざわざくそ高い参考書なんて買わなくても"C# 入門"でググってきちんと読んでればありえるはずの無いような質問してくるからな
行けばいいのにって馬鹿か 出てってくださいお願いします、だろ?
聞く前に調べろってことですね
ヒント:春休み
だんだん覚えてきて調子乗った厨房同士が罵倒し合うスレ
デリゲートって名前付けてあげる? いまだと、Action Func 使うのが流儀?
>>489 ここを見ているのですが、マウスを指し示すと原文(英語)が被さって表示されて
困ります。英語を出さない方法はありますか?
何の世界でも○○流っていっぱいあるけどさあ デリゲートの世界だけは唯一つに定まると思ってんの?
>>502 お使いのブラウザのスレで質問してくれ
続けたら殺す
今のところ機会はないが、プロパティにする場合はデリゲート定義するかも。
可愛いC#タソありますか?
>>502 ここだかもう一つだかの過去ログにある ちょっと前に答えた気がする
HTMLだからブラウザで表示してJavascript切れ
機械翻訳が主だから原文読めるようにしてるんだろうけど そんな事してる暇があるなら翻訳の質上げろよ馬鹿って思うよな
>>502 右上の設定ボタン(歯車マーク)押して「スクリプトなし」を選択してOKボタン
ブラウザもまともに使えないようなやつがプログラム書くんだからもうね、、
>>501 なんども同じようなの作るんだったら名前つけたげてもいいよ
でもそれに共通の意味がないなら無駄かもね
デルタ式とか匿名デリゲートって富豪プログラミングだよな
コーダーのあずかりしらないクラスがコンパイラによっていくらでも作られるんだもんな
何かいろいろ順序が逆なんだよな プログラムなんて基本の応用なのに 基本すっ飛ばして始めるから
らむだ
まあC++のテンプレートよりは… でもそうなるとJavaのジェネリクスの方がいいかもな あれ結局原型になるし その代わり型は実行時パラメータとして使えないけど
λ Λ ラムダのギリシャ文字
誰かが簡単だなんて言い出したからだろ 本質じゃない部分(メモリ管理とか)に手を取られる事がなくなっただけで、そこから先は何も変わっていないのだが 日本語プログラムなら簡単だと思うか? 結局のところお前がやりたい事をパソコンに説明できるかどうかに掛かってんだぞ
じゃあコンピューターの構造変えて作りなおせば?
ちょっと感情的になってるよね 落ち着かないとコーディングなかなか進まないよ
MSが良かれと思って用意した機能も、アホノコには障害となっちゃうんだよな
イプシローン
ラムダッシュ モーニングリポート
あーこれはあれだな ドラえもんがゲラゲラ笑ってたやつでしょ?
525 :
511 :2012/03/26(月) 20:52:18.88
間違えた 酒飲んでるせいにしておこう 死にたい
うちがラムだっちゃ☆
527 :
デフォルトの名無しさん :2012/03/26(月) 20:56:28.39
>>520 wpfは性能さえ出れば使っても良いけどアレ過ぎだわ
xaml(笑)
New Wolverine Movie Could Piss Off Japan
This is rumoured to be the teaser poster for the upcoming Wolverine flick, The Wolverine.
The movie is set in Japan, and actor Hugh Jackman revives his roll as the superhero.
The image first popped up on Instagram (and was spotted by website ScreenRant). It
was supposedly taken at offices of the film’s director, James Mangold. The photo has
since deleted from Instagram.
The image could very well be fake ? loads of phoney teaser mock-up posters make
their way online. Making one isn’t too hard. What’s interesting isn’t that it’s already
made it’s way online, but rather, that it’s already made it’s way online in Japan via
2ch, the country’s largest bulletin board. While some thought the poster looked “cool”,
others had more of kneejerk reaction.
“Man, this is going to piss off the ‘netouyo,’” wrote one 2ch user. “Netouyo” is short
for “nettouyoku” (ネット右翼) and it literally means, “right wingers who use the internet”.
The term isn’t referring to right-wing Republicans in the US, but those in Japan who are
typically very conservative and very nationalistic.
People’s political philosophies vary ? and I’m not judging these individuals for what they
believe. Twentieth Century Fox, however, should be aware that, if this poster is real, all
sorts of critics will come out of the woodwork. And many of them will be rallying around
the same flag Wolverine is shredding.
http://www.kotaku.com.au/2012/03/new-wolverine-movie-could-piss-off-japan/ http://www.filmofilia.com/wp-content/uploads/2012/03/the-wolverine-poster.jpg
おー、イエスイエス、サンキュー!
533 :
デフォルトの名無しさん :2012/03/27(火) 12:24:20.30
毎回変数とかメソッドにstaticってつけるのが面倒なんだけど付けなくても使えるようにならないの?
534 :
デフォルトの名無しさん :2012/03/27(火) 12:26:32.54
static付きなんてむしろそんなに使わないだろ
staticはそんなに使わないよな、、、もしかしてprivate? だったら省略してもいいぜ。
みながわけんじ氏をdisってんの? テメェ明日の仕事があると思うなよ
グローバル変数を使う俺はstaticなんていらないぜ
お前もstaticにしてやるぜ
誰かstatic止めてstatic
staticが止まらない
static void Mainだっけ
おいでファンタージー好きさミステリー君の若さ隠さないで 不思議したくて冒険したくて誰もみんなウズウズしてる 大人のフリしてあきらめちゃ 奇跡の謎など 解けないよ もっとワイルドにもっとたくましく生きてごらん
前スレでも質問したんですが再投稿させてください VC#でCTRL+E押した後にCTRL+C押すとコメントアウトできます この二段階のショートカットを行いたいのですがどのような仕組みで実装してるのでしょうか?
別にどのような仕組みと言うほど大層なもんじゃない キー入力を受け取ってCtrl+Eならフラグたてといて一旦終了 Ctrl+CならCtrl+Eのフラグが立ってるか確認して対応する処理を行う そのほかのキー入力ならフラグをおろす ごく普通のことだろう
テキストエディタってあるじゃないですか 単語に色をつけたり出来るじゃないですか 基本的にテキストエディタってやっぱりrichTextBoxで実現しているのでしょうか?
2回目のキーはCだけでいいよね。 CTRL+Eが押されたら次はCを監視すればできあがり
>>543 TextBoxを普通に扱えるようになればおのずと答えは出るよ
面倒くさがってその場しのぎでやってるからわからない
大体それを実装させるのがプログラマーの仕事だろうに人に作らせてどうする
選択状態にして書き変えてるだけだろ 順番にググれks
>>549 ふぁびょってんじゃねーよ2ちゃん初心者
ふぁびょって脊髄反射とか(
どうでもいいけどIDつけてくれよ
549 自分:デフォルトの名無しさん[sage] 投稿日:2012/03/27(火) 14:57:25.62
>>547-548 アンカつけろや2ちゃん初心者
550 返信:デフォルトの名無しさん[sage] 投稿日:2012/03/27(火) 14:59:31.79
>>549 ふぁびょってんじゃねーよ2ちゃん初心者
14:57:25.62
14:59:31.79
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
猿から進化したばかりの人間初心者が騒ぐな
マ板でやれ
荒れているので私の疑問書かせて頂きます プログラムの部品としてAPIってのが提供されていますが C#はAPIを利用しなくても描画したりファイルを扱ったりできますよね。 最初、C#も裏ではAPIを利用しているのかと勘違いしてました なぜ似たような機能が提供されているのですか?
c#も裏でAPIを利用していからです。
な、なんですと!
いから?
DataTimeをconstするとエラーになるんだけど どうすりゃいい?
constじゃなくてstatic readonlyにしたまえ
そんな型は知らん
お前の都合など知ったことかァーッ!
変更されたくないならプロパティにしてgetだけ公開とか
Windowsフォームアプリケーションを作成しています 下記のように、各クリックイベントの後に共通してFuncA()とFuncB()を呼び出しているのですが、 これを上手く省略する書き方があれば教えてください private void button1(object sender, EventArgs e){ i = 1; FuncA(); FuncB(); } private void button2(object sender, EventArgs e){ i = 2; FuncA(); FuncB(); } private void button3(object sender, EventArgs e){ i = 3; FuncA(); FuncB(); }
分ける意味が分からんね
別な所でFuncAとFuncBを分けて使いたいんだろ
ボールを投げたときの軌道を計算したいのですが こういうのを計算してくれるライブラリってありませんか?
以前SpeechとかいうクラスあったけどなんでそんなどうでもいいのはあるのにPOPとかIMAPとか標準クラスにねぇんだよ SMTPはあるのに・・・
private void buttons_Click(object sender, EventArgs e){ int i = 0; if( sender == this.button1 ) { i = 1; } else if( sender == this.button2 ) { ... } else ... { } FuncA(); FuncB(); }
private void buttons_Click(object sender, EventArgs e){ int i = 0; switch(sender) { case this.button1:i=1; break; case this.button2:i=3; break; case this.button3:i=3; break; } FuncA(); FuncB(); }
private void button1(object sender, EventArgs e){ FuncC(1); } private void button1(object sender, EventArgs e){ FuncC(2); } private void button1(object sender, EventArgs e){ FuncC(3); } private void FuncC(val value){ i=value; FuncA(); FuncB(); }
Form fm = new Form(); fm.Text = "ようこそC#へ"; Label lb = new Label(); lb.Text = "C#をはじめましょう"; lb.Parent = fm; Application.Run(fm); で、Formに「C#をはじめましょう」が出るのですが、 lb.Textに長めの文字を入れると改行されてしまいます。 改行されない方法はありますか?
576 :
566 :2012/03/27(火) 19:13:21.28
なるほど、なんで思いつかなかったんだろうってくらい色々やり方ありますね 参考になりました
>>575 Label.AutoSizeをtrueにしたらいいんじゃね
>>569 ライブラリが作成されるほどボールを投げた時の計算に困る人がいるとは思えませんので
自力でどうぞ
<base_time>1332582300</base_time> これから○○年△△日 □□時☆☆分◇◇秒にするにはどうすればいい?
>>577 lb.AutoSize = true;
にしたらOKになりました。ありがとうございます。
>>576 よし。
いまさらだが。
ButtonのTagに1,2,3を入れてやってから
Clickイベントを同じメソッドに割り当てて
private void hogebutton_Click(object sender, EventArgs e) {
Control c = (Control)sender;
int i = int.Parse(c.Tag.ToString());
FuncA();
FuncB();
}
>>579 基準は何なんだよ
エポックからのミリ秒か?
Tag使うのは最終手段だからButton継承して iを持ってるもの作るかな 10秒でできるし
むしろ継承の方が最終手段だろ
とにかく完成が最優先
〜こうして新たなスパゲティコードが生まれた〜
587 :
デフォルトの名無しさん :2012/03/27(火) 20:13:18.93
ただ、Tagは何でも突っ込めるObject型だから、文字列の”1”じゃなくてintの数字突っ込んでおくべきだとは思う
文字列でいいならName使えよ
Tagに突っ込むとかNameに突っ込むとかする程度の作成物なら
>>566 のように直書きするわ
PictureBoxのGraphicだけに描画してるわけじゃないんだよね 普通に描画されるはずだけど
592 :
デフォルトの名無しさん :2012/03/27(火) 20:32:57.26
これ マクロのアプリを作りたい とか言ってた人じゃね?ww
595 :
デフォルトの名無しさん :2012/03/27(火) 20:37:22.53
>>593 ベクトルの計算だけじゃないの?
・手?から離れた瞬間のベクトル
・その後常に受ける重力
・空気抵抗による減速係数
ライブラリは必要ないよ
必要ないってか需要がないライブラリなんて作られるわけないじゃん
597 :
590 :2012/03/27(火) 21:00:59.52
>>593 無重力で真空の空間でベクトル(1, -1)の方向にボールを投げたときの計算をしたよ
ついでに描画しといたよ
Formに張り付けて使ってね
PointF vector = new PointF( 1, 1 );
protected override void OnPaint( PaintEventArgs e )
{
base.OnPaint( e );
for( int x = 0; x < this.Width; x++ )
{
float y = ( vector.X / vector.Y ) * x;
e.Graphics.DrawRectangle( Pens.Black, x, y, 1, 1 );
}
}
float y = ( vector.Y / vector.X ) * x; だね 間違えてごめんね
放物線の軌道なら中学高校数学を勉強しなおすべき 応用効かなくなるぞ なーに関数書くだけだ
単純に時間の関数で位置が求まるだけの運動なら空気抵抗を無視すれば そう複雑でもないと思うけど、任意のタイミングで衝突や加速が加わることを 想定にいれるなら、加速度と速度から数値積分的に位置を求めることになるわけで それなりに面倒そうだね。 2Dか3Dか知らんけど、とりあえず位置を表すクラスを作って、それを派生して 速度、加速度のクラスを作るところから始めるのかな。
閉じた系で厳密にシミュレートするなら関数記述だろうけど 物理エンジンに初期値与えてあとは丸投げというのもあり Unreal engineなんか使えるようになるとすごい
今月の日経ソフトウェアにちょうどそのお題があるよ
606 :
デフォルトの名無しさん :2012/03/28(水) 13:13:25.24
教えてください。 複数チェック処理を行うクラスを作ります。 チェック結果はboolで返して欲しいのですが、 falseの場合、チェック内容によって数値も返して欲しいのです。 処理1で引っかかったら01、処理2なら02、みたいに。 どうしたらよいですか?
607 :
デフォルトの名無しさん :2012/03/28(水) 13:22:53.47
面倒ならグローバル変数で解決!
609 :
デフォルトの名無しさん :2012/03/28(水) 13:36:44.20
面倒だからintにしろよw
610 :
デフォルトの名無しさん :2012/03/28(水) 13:50:34.75
>>607-609 みなさんありがとうございます。
一応書き込む前に調べはしましたけど、どの方法が適切(?)なのか
判断つかなかったのです。
もらったアドバイスのいずれかにしようと思います。
C#で作ったプログラムAがあります プログラムAから起動した外部プログラム(メモ帳とか)があるとして プログラムAを閉じたら、起動した外部プログラムも全部閉じる処理はどうやるのでしょうか?
612 :
デフォルトの名無しさん :2012/03/28(水) 14:18:59.58
数万、数十万件のファイルを読み込むとフリーズします。 UIをフリーズさせないように非同期で処理しているんですがフリーズしちゃいます。 IEnumerable<string> files = Directory.EnumerateFiles(source);やTaskで非同期しているはずなんですがUIがフリーズしちゃいます。 どうすれば重い処理のときにUIをフリーズさせずにすむのでしょうか アドバイスお願いします。
ソースだせって
数十万件も画面に表示しようとしたら重いだろうな
読み込む処理を別スレッドにすればOK。
LoadでStartPosition = FormStartPosition.CenterScreen; って書いても画面の中央にフォームが表示されません
Loadじゃもう遅くないか?
>>612 ディスクアクセスのせいでシステム全体が重くなってんじゃないの?
619 :
デフォルトの名無しさん :2012/03/28(水) 15:13:44.32
>>612 実際やらなかったが、スレッドじゃなくてプロセスを分けてWCFで通信するってのを検討したな
もし、同時に動いている関係ないプログラムが普通に動くなら回避できる可能性はあると思う
俺はWPFからWinformsに変更したら解決できた
お前らソースなしでよく話できるな
621 :
デフォルトの名無しさん :2012/03/28(水) 15:20:05.11
textBoxのAcceptsTabをtrueにしたのにtab押してもタブが入力できないのは何故ですか?
自演に釣られまくり
624 :
デフォルトの名無しさん :2012/03/28(水) 15:28:08.85
>>622 Multiline = true
じゃないとだめぽいね
ボタンなどをデザイナから貼り付けて、これをスタティックやグローバルに変更したらデザイナから消えた。 他のアイテムを削除した際にこのボタンに関するコードも一緒に削除されてエラーの嵐になっちゃうんだけどなんとかならん?
>>624 Multilineをtrueにしたらできました
627 自己解決 入力した後に呼び出さないとダメでした
>>625 デザイナが生成したコードはいじらずに自分で宣言した変数に代入でどうか
ああ、その手があったか。それならデザイナから消えないからみためもそのままだし コードを各位置をごっそり移動するより綺麗だね
Form落としたら一緒にDisposeされちゃうからそこだけ気をつけて
632 :
デフォルトの名無しさん :2012/03/28(水) 20:38:15.28
>>618 そうなんです、調べたところディスクの速度に制限されることをIO Boundと言うみたいですね。
これはプログラムでは解決しようがないんでしょうか
いやお前の場合なんか別の要因だと思うぞ ソースコード見せる気無いようだから深く詮索しないが
634 :
デフォルトの名無しさん :2012/03/28(水) 20:41:21.30
>>632 ファイルの内容にもよるんじゃないの?
たとえばテキストファイルで1行1レコードを1レコード単位で読み込んでるとからな
改善の余地はあると思うけど
>>612 メモリが足りないとか、HDDの空き容量が足りないとか
いくらIO待ちになっても、スレッド分けてるならタイムスライスが全く回ってこないほど固まらないだろ スレッドが分かれてるようで分かれてないだけのような気がする 他に考えられるのは、Taskはスレッドプールで動いてるので あまり長時間占有し続けるタスクをガンガン作ると スレッドプールが長蛇の列になってUIが動いてないように見える こうなるとスレッドプールが拡張されるまでカックンカックンする
>>631 ボタン型A = ボタン型Bでもやろうとか思ったけどこれだと参照渡しになっちゃうよね。まあなんとかなると思うが
単にスワップしまくりだったりしてな
639 :
デフォルトの名無しさん :2012/03/28(水) 21:11:17.61
まず瞬間的に気づいたが Directory.EnumerateFiles使っても次の行でToListしたら意味ねえだろ
Everythingとかどうやってるんだろうな 最初多少の時間かかってもいいから超高速にファイル検索してパス取得したい
642 :
デフォルトの名無しさん :2012/03/28(水) 21:19:10.39
数十万とか読み込むなよ
var(笑)がたくさんあったからてっきりJavaScriptかとおもた
あと胡散臭いところとして、リパースポイント含んでたりしないかってのが気がかり
>>643 どんな種類のデータなんだろうね。
データ自体を作り出すのも大変な労力だわ。
あとDataTableって読み取りロックのようなものは掛かるのかな MSDNみると全ての読み取り操作に対して安全ですって書いてあるけど 安全っての微妙な言い回しだよね 中途半端な状態を読み取らないという意味としても、セルレベルなのか行レベルなのか列レベルなのか良く分からない これがダーティーリードみたいな事が起きないって意味ならロックしてるよね その辺の競合も気になるな
私からは以上
でも列挙がボトルネックになっているとは考えにくい 10万ファイルで試したけど2秒弱しか掛からん そもそもMFT読めば済む話でデータ全部なめるわけじゃあるまいし
>>639 デバッグの一時停止するとどこで止まるんだこれ
Worker.RunWorkerAsync(null);をやったあとに Worker.DoWork += (sender, e)とかやっても呼ばれるんだな・・・。
ゔぁあ
653 :
デフォルトの名無しさん :2012/03/28(水) 22:31:37.72
>>649 内容は明かせないんですが、とある画像ファイルを100万件近く読んだときに1分くらいフリーズしてしまうんです。
Dialogが開いてDoWorkに入ればフリーズしないんですが、そこに入る前のファイルパス取得でフリーズしてしまうんです。
どういう風に処理をわければ上手く非同期できるんでしょうか
内容明かせないような仕事の話をこんなところに書いてるやつが 取引先な委託元がかわいそう
>>653 ガベージコレクションおこしているんでしょうか?
656 :
デフォルトの名無しさん :2012/03/28(水) 22:41:46.43
私は本職ではなくホビープログラマーなので 仕事でちょっと便利につかればいいという感じでツールを作ってるだけです
結論 相手するだけ無駄
>>653 100万件ってのが問題なだけじゃねえか?。。
メモリーはだいじょぶなの?
メモリースワップしてそう。。
なるほどエロ画像か
まあその類いだろうな いわゆる業者だ
そうだな 自家発電業務があるからな
リンクラベルのTagにURL入れて置いて クリックされたらそこをブラウザで開くのって駄目なの?
>>653 俺の試した環境は最近刷新したばかりなので
やや古いPCで件数10倍になると1分以上かかっても不思議じゃないだろうな
そもそも上の方で言われてるようにリパースポイント含んでて無限ループしてないか?とかもあるが…
ソースコード見る限りファイルをリストにしている部分が非同期になってないから
これを解消しない限り根本的にどうもならない
具体的に言うとDoWorkの中でDirectory.EnumerateFilesしろ
それによって発生する諸々の問題(プログレスバーをどうするか等)は自力で解決しろ
俺らもホビープログラマーであって便利屋じゃねえんだ
664 :
デフォルトの名無しさん :2012/03/28(水) 23:45:17.52
>>662 問題ないんじゃないの?
Tagって基本的にフリーのはずだし
>>653 当り前だ馬鹿野郎。60倍速いPC用意しら1秒で済む。
うん
リスト化してる部分の速度はどうなの?時間測った?まず場所確定しないとどうしようもないだろ
C# 2010 Expressを使っているのですが、 自分のプログラムと別に参考にするソースやちょっとしたサンプルテストのために2つ3つ別途起動している状態です。 一つのExpressアプリケーションの中でこういったちょっとした別のソースを試したりということはできませんか?
1つのソリューションの中に複数のプロジェクトを持つことは出来るよ
>>669 というより世代管理したいってことじゃないの?
試してみるけど場合によっては元に戻したいと
一番いいのはプロジェクトのフォルダごとコピーして世代管理だねw
差分管理するソフトもあるけど面倒といえば面倒だし
まったく別のソリューション作成・開いて別のことしたいってんだろ? 同じウィンドウの中でソリューションの切替がしたいと
672 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/29(木) 00:57:15.02
>>671 そっちかね?
実は普段何気にプロジェクト作ってるんだけどプロジェクトの上かしたにもう一段あるんだよな
ソリューションって表現だっけ?
673 :
668 :2012/03/29(木) 00:57:48.86
>>671 そういうことです、分かりにくくて済みません
フォルダとしては ソリューション-プロジェクト-プロジェクトを構成してるパーツなど ってなってるから プロジェクトのフォルダ全部をそのままコピーしてIDE上から そのプロジェクトを追加すればいいんじゃないかな? IDE上で複製できるかもしれないけどw
ブラウザ複数開くと2つも3つもウィンドウでてうざい タブブラウザほしい みたいな C# Expressじゃできないだろ マルチモニターにして数増やしたら便利になる
垂直タブグループとかのことでは?
お前ら2chが無くなったらどこ行くん?
3ch
1chの復活はまだか
修飾キーとは組み合わせられる 仮想キーコードは百何十とあるんだから全部組み合わせ可能にしようと思ったら それだけのビットが必要になるんだぞ Int64でも全く足りない
682 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/29(木) 12:55:07.83
VK_xxと同じなので Aは0x41 Bは0x42 orすると0x43だからCと同じだよねw
>>681-683 なるほど、全部のキーがそれぞれ別のビットに割り当てられているわけじゃ無かったということですな…
解決しました。ご返答ありがとうございました!
5桁の文字列があるのですが、 01234 だったら 1234 00123 だったら 123 00001 だったら 1 とテキストボックスに表示させたいと思います。 今は一回数値に変換してからtostringで文字列に戻してるのですが、 もっとスマートな方法はありますでしょうか。
string str = "0000000123"; str = str.TrimStart( '0' );
687 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/29(木) 18:18:44.06
>>686 str ="0"だとstr="";になるから注意が必要だね
688 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/29(木) 18:30:40.85
TransactionScopeのデフォルトの分離レベルをSerializableからRepeatableReadに 変更したいのですが、App.configなどで設定可能でしょうか?
多分無理
引数にファイルパスを受け取って起動した場合 フォームを表示しないで一連の処理が終了したらアプリも 終了するようにしたいのですが 実行すると↓の行で「オブジェクトが破棄されている」とエラーができます Application.Run(new Form1(args)); Form1内では、一連の処理実行後 this.Close();としています これをしなければ普通に動くのですが、フォームは表示されてしまいます どうすれば引数無しの通常起動と、引数ありのバックグラウンドでの処理を両立するようにできるんでしょうか?
Formをnewしなきゃいいじゃん。
プロジェクトをコンソールアプリにすればいいんじゃないか 引数はargsに入ってくる
それはダメだろう。サブシステムが異なる。
>Application.Run(new Form1(args)); でメッセージループが始まるだけだから。 フォームが必要なきゃ呼ばなきゃいい if( 引数があるとき ) { //Application.Run(); Form1 f = new Form1( args ); f.NanikaMethodYobe(); // 処理が終り次第アプリも終了 } else { Application.Run(new Form1(args)); }
ぼたんガナンコカアッテ オシタトキノいべんとヲヒトツニマトメテ ジブンデツクッタいべんとはんどらヲ トウロクデキルノカ?
できるよ
知恵袋にいけボウヤ
>>694 バッチリできました
ありがとうございます
699 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 01:32:35.46
threadとBeginInvokeとBackgroundWorkerどれ使えばいいんだ
この名無しの名前なんなの?
そういうことだよ また自治()とか言って騒ぎ始めたんだろ
ソースはNHKのNHK予算審議参院総務委
今日の片山さつきまとめ
「なんで、韓国の放送局が、NHKの中にあるの」 「なんでハングルメールブームを捏造するの」
「なんで紅白に反日時代を出すの」
ミュージックジャパンなのに韓国人を36%も混ぜてた ビックバンなどの大麻・人身事故そんな犯罪者も出してた
そりゃミュージックコリアwだろとw
「皇室」「王家」と辱めたことは 宮内庁に聞いたのか?
ほとんど答えてなかったね
「ニュース9の「在日参政権への誘導」については、今夜、謝罪放送しとけ」 も言ってた
H24/03/29 参院総務委・片山さつき&礒崎陽輔【犬HKを質す!!】解約お勧め
http://www.nicovideo.jp/watch/sm17394218 03.29 参議院総務委員会 片山さつき議員(自民)NHKの諸問題を追及
http://www.nicovideo.jp/watch/sm17394300
704 :
685 :2012/03/30(金) 08:06:25.43
>>686 >>687 ありがとうございました。
あったらいいのになと思っていたメソッドがあったのですね。
705 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 10:39:17.17
ネトウヨ死ねばいいのに。
いつもありがとうございます。 複数行テキストボックスに、データを受信するごとに1行ずつ 追加表示していくプログラムを作っています。 行数が100行超えたら1番古い行を消すようにして トータル100行を超えない様にしたいと思うのですが、 どうやったらよいのでしょうか。
100行程度なら単純に string[] lines = this.textBox1.Lines; if( lines.Length > 100 ) { var list = new List<string>( lines ); list.RemoveAt( 0 ); this.textBox1.Lines = list.ToArray(); } とか
709 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 13:39:16.84
Visual C# 2010 ExpressでSystem.Web.dllの参照の追加する方法教えろ
ソリューションエクスプローラの参照設定右クリック 参照の追加 .netのタブから選べ
711 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 13:55:32.84
>>710 System.Web.dllがなかった
自分のアプリではなく、例えばメモ帳のアプリ(ウインドウ) がアクティブだった後、別のアプリがアクティブになった(メモ帳が非アクティブ)時 自アプリのイベントを発生させたいのですが どのように書けばいいのでしょうか? 対象のアプリのハンドルの取得はできたのですが・・・。
714 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 15:43:57.44
716 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/30(金) 20:10:28.01
C#で、mdbファイルの作り方からテーブルやデータセットとかしたいんですが。 どうしたかできますか?
File.Create("hoge.mdb"); TableLayoutPanel tableLayoutPanel1=new TableLayoutPanel(); int data=0;
お、googleIME久しぶりに入れたらVSでのバグが治ってる やっと糞MSIME使わなくて済むよ
>>713 まずC#じゃ無理と言っておく
残念だけど2度は言わない
聞き返すなよ
C#以外でやる方法
・SetWindowsHookを使ってWH_CALLWNDPROCを使用する
・CreateRemoteThreadとSetWindowSubclassを使ってWndProcを置換する
好きな方をどうぞ
C#がOSに関わる全ての処理ができたら楽なのにな なんでずっとW32APIを使わなきゃいけないんだよと
別にC#にはCLRの上で動かなければいけないって仕様はないけどね… 移植性という幻想の上ではVMで動かすのが流行だったんだよ その観点から行くとシステムコールなんか直接触らすはずないよね
APIを使い易い環境がほしいとは思う
実質的にCかC++しか選択しないもんな
>>722 いやシステムコール直接触りまくりじゃないか
むしろC#は最近の言語の中じゃ一番システムコールやりやすい部類じゃないか
直接って言ってんだろ .NET Frameworkって御立派なレイヤー挟んでるだろ
ここでPHPの出番です
直接って? C++で呼ぶのと別に何も変わらんだろ ヘッダが用意されてるか用意されてないかの違いだけ
出来るのはできるけど入力補助がないよねぇ ネット情報をガン見しながらやるしかない
Javaみたいにネイティブでラッパー書かなくていいし Cそのまんまのポインタ使えるしマーシャリングも強力だし プラットフォーム呼び出しに関してはC/C++やC++/CLIを除けば最強じゃね
最強だけど流行らない理由は?
十分流行ってるでしょ
フリーソフトの殆どはC++だよ?
糞して寝ちまえ
C++です
DataGridViewのCell編集中にカーソルキーで編集終了にならないようにしたい やりかた教えて
キー無効
誰でもいいからネイティブコンパイラ作ってくれ。
>>739 ngen.exeじゃだめなん(´・ω・`)
それって実行時には.netがインストールされてないとダメなんでしょう?
それはネイティブコンパイルとか関係なくて配布サイズの問題だろ
744 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 00:43:05.41
ネイティブにする意味ないし・・・
意味がないなら、c++はいらない子のはず。
746 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 00:46:30.80
始めからC++で作るなら分かるんだけどなw
.NETを使うのはMSが書いた高品質で巨大なライブラリを利用するためだからな 仮にC++向けの.NET相当のものがあったとして、そんな巨大なもんスタティックリンクできるかw
アップデートとかどうやってんのアレ 自分自身(*.exe)を上書きしてるんだろ?
ClickOnce、ApplicationUpdaterとか 俺は本体から自前の更新用プログラム立ち上げて本体上書きさせてる
更新終わったら本体起動して本体から更新用プログラム削除か・・・
>>744 フレームワーク入ってないPCでも動くし
Boost全部リンクしようとするとえらい事になるのと似ている
bが256より小さかったらaはb bが256より大きかったらaは256 これを一行で書くにはどうすればいい?
>>753 if(b<256) a=b;if(b>256) a=256;
a = b < 256 ? b : 256;
a = Math.Min(b, 256)
できた
そりゃできるさ
C#ってね、大文字のところを小文字で売っても、 スペースのところを詰めて打っても、 ちゃんと正常な文に直してくれるから便利ですね。 本を手で押さえてリストを入力しているので、どうしても右手 だけで入力しないとダメなので助かります。 Shift押しながらとかが辛いのです。 本を抑えてないと本が閉じてしまうから。
それはIDEの性能であってC#の機能ではないだろ
hogeControl.Size = とize(w, h); と hogeControl.Width = w; hogeControl.Height = h; はどっちが速い?
↑ = new Size(w, h);
プログラムの速さを測定できるの?
SuspendLayoutしないならhogeControl.Sizeの方がいいんじゃないか 速さは知らんが余計な処理は走らないはず
size作る分上が遅い
767 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 10:46:26.52
というかSizeとかってモノによってはWidthとかHeight単体で変更できないやつないか?
Sizeは構造体だからnewのコストなんかかからん
>>762 の場合SizeのWidth/Heightを変更してるわけではないから
>>767 は関係ない
>>764 100万回実行してStopwatch クラスで時間はかるとか?
>>769 それだったら
時間を表示する
for(i=1 to 1000000)
処理
NEXT
時間を表示する
でしょ ?
メッセージ飛ばないほうがいいだろ
何の意味があるんだよ
単なる興味です
サイズ変更のイベントハンドラで1時間待たされたら相当変わる
無意味厨うぜぇ。
処理待ちが1時間でも2時間でも糞だろw
パフォーマンスの最適化で一番重要なのって、意味があるかどうかだろ
モチベーション最適化のためだよ
実際に一時間変わってからほざけよ 天が落ちてくるのを心配するのと変わらん
SuspendLayout ↓ Widthを変更する ↓ 画面のアップデートがかかる ↓ サスペンドされてたわ。やめやめ。 ↓ Heightを変更する ↓ 画面のアップデートがかかる ↓ サスペンドされてたわ。やめやめ。 ↓ ResumeLayout ----------------------------------- SuspendLayout ↓ Sizeを更新する ↓ 画面のアップデートがかかる ↓ サスペンドされてたわ。やめやめ。 ↓ ResumeLayout
そうやって原発事故が起きたんだよな。
入り込んだ一匹の蚊が偶然原子炉を操作することを想定するようなもんだな
閾値の概念を理解しろ
お前のプログラムが原発に採用される事が決定したらほざけ
でもWinFormsを扱うときはこの最適化のあるなしが 結構な影響を与えることがあることを知らないはずはないだろ ちょっと触っただけでちらついたりさ
>>779 東京直下震度7がいつ起こってもおかしくない
と同じということですね。
地震と津波で全電源喪失、というのは想定しなければならなかっただろう。 想定さえしておけば、たとえば「鉄塔が倒れて受電不能」「電源車60台以上到着、接続できたのは1台」みたいな、お粗末な結果にはならなかっただろう。 これらに対応するのにいくらの金がかかるというのだ?100億か?
>>781 やっぱり東電の原子力プログラムを作った人のバグですか?
>>787 IBMとスガノ銀行の損害よりも安いですね。
>>782 今回のように震度5しか想定しなかったということだよ。
マ板でやれ
無意味厨は哲学板へ池。
>>785 パフォーマンスの話なのでチラつきはどうでも良いのです
話の境界が分からない人って愚昧にして不幸ですね
原発の話してる奴も緊急自然災害板や電力板で行くといいですよ どうしても続けたいのならC#のプログラムとの関連性をコードレベルで明確にしてしゃべってね
そういう無駄レスに何の意味があるのか。
スレ違いが消えてくれるのならそれだけで価値があります
フリーウエア作ったら ウイルスチェックソフトにひっかかる。 アバスト!は疑わしいプログラムを分析しています →サンドボックスで実行します →分析を完了しました このファイルをマルウエアであると識別するのに十分な証拠は得られませんでした もちろんアバストの設定でチェックしなくすれば出なくなるけど 配布先でやってもらう手間をできればなくしたい。 同じような現象になって対策した方がいたら、方法を教えてください。
>>797 無茶言うな
それができたらウィルスの製作者は真っ先にその方法でヒューリステックに掛からないよう対策するだろ
むしろコイツがソレで対策を探してるという可能性。
UdpClientの同期、非同期ってどういうときに使いわけるん?
>Receive メソッドは、リモート ホストからデータグラムが到達するまでブロックします。 これが起きて欲しくないとき
804 :
797 :2012/03/31(土) 13:05:58.66
>>799 まぁ そうだよな。 しかし多くのフリーソフトはひっかからない気が。
対策ソフト導入前にインストールだったからひっかからないのか?
>>801 たしかに可能性はあるね。 時期が時期だし。
つまり797がウイルス作成の犯人ということですね明智君
ウィルス作るような奴がC#利用してしかも初心者スレで質問するかねw
春ですから分かりませんよ
ウイルスの実行に .NET Framework4.0 が必要です。 作るならc++だろ。
>>802 普通は非同期を使う。非同期の使い方が解らないときに同期式を使う。
韓国産かつお節から発がん性物質
2012/03/31 08:52
基準値を2−4倍上回るベンゾピレン検出、製品は全て回収へ
汁物料理のだしに使う「かつお節」から、基準値を上回る発がん性物質のベンゾピレンが検出され、回収措置が取られることになった。
食品医薬品安全庁釜山地方庁は30日、韓国産のかつお節製品3種から、基準値(1キロ当たり0.010ミリグラム)を
2−4倍上回るベンゾピレンが検出され、流通・販売を禁止するとともに、回収措置を取ると発表した。
かつお節は、カツオを削って乾かしたもので、汁物料理やうどんのつゆのだしとして使われる。
かつお節メーカー「大王」(慶尚南道蜜陽市)のかつお節2種からは、200キロ(消費期限2012年6月14日)分から
1キロ当たり0.027ミリグラム、別の製品231キロ分(消費期限13年3月7日)からは同0.040ミリグラムのベンゾピレンが検出された。
また、テソン食品(慶尚南道金海市)の「花かつお」80キロ(消費期限12年11月23日)からは同0.019ミリグラム、漢拏食品
(慶尚北道尚州市)の「薫煙マグロ」20キロ(消費期限13年1月26日)からは同0.046ミリグラムのベンゾピレンが検出されたという。
発がん性物質のベンゾピレンは、基準値以上の量を続けて摂取すると、がんを誘発する危険性が高まる。
ベンゾピレンは焼き肉や食べ物の焦げた部分にも含まれているが、今回の調査では、かつお節の製造過程で生臭さを消し、
保存性を高めるために煙でいぶす際に、この物質が発生することが分かった。
食薬庁は、製品を購入した消費者に対し、使用せずに返品するよう呼び掛けている。
http://www.chosunonline.com/site/data/html_dir/2012/03/31/2012033100380.html
ヒューリスティックで誤検出されるのを防ぐのは難しい int main() { return 0; } だけでも検出されるケースがある どうすればええねん
812 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 13:55:12.15
C#始めようと思うのですが 「独習C#第3版」と「プログラミングC#6th」どちらがお勧め? 一応、C、C++は出来ます。あとPerlとか。 それともオンラインのMSDNとかその他入門WebサイトだけでOKとか?
独習はマジで文法以外に一切触れてないのでそれでよければ 今のC#は.NET Frameworkにおんぶだっこなので、何ができるようになるかで言えば、ほぼ何もできるようにならない プログラミングC#は知らん
camelCaseが気持ち悪いんだけど 使わないとダメ?
おすきにどうぞ
>>813 うーん、目次見て「プログラミングC# 第6版」にします。
って、もうすぐC#5.0もあるんですよね・・・
キャンパスの中では、あなたは王様ですってボブが言っていたように エディタの中ではあなたは王様です 自由にしていいんですよ
>>816 ソフトバンクから出てる標準C#入門でいいんじゃね?
C++わかるんだったら言語仕様なんて雰囲気で慣れてWebで補う感じで十分だろ C#でデータベースアプリ作ったりネットワークやったりゲーム作ったりする本のほうが勉強になると思う 実際にデータベース使うかは別にして、他からの移行ならサンプル見るのが一番
言語自体は一日ありゃ覚えるだろ ライブラリは必要な時にググる。
そしてこのスレで意味不明な質問をするんですね
Publicな変数って駄目?
>>822 独立して修正する境界を超えて使うのは駄目
クラス単位かもしれないしアセンブリ単位かもしれないしアプリ全体かもしれないし
時と場合による
徐々に広くしていけばいいんだよぉ private -> internal -> public 基本的にinternal以上はいらないだろ
読み書き可能なパブリックプロパティがあることは別に問題ないので フィールドの使用を止めるのも一つの方法 フィールドのメリットは初期化をフィールドの宣言といっしょに書けること 構造体の挙動(デメリットにもなりえるが) refやoutパラメータに渡せる
internalの変数ってのもpublicと同じぐらいまずあり得ないと思うんだけどねw
kinouDeeta=1; KuriKaesi();
>>819 5000円もする本わざわざ買う必要もないってことですね。
>>812 日経BP社の「C#プログラミングの入門書」ってどう?
「テキストエディタをイチから作ってみる」という特集がありました。
日経ソフトウェアの連載記事をムック化した書籍です。
外から変数弄りたかったらメソッド経由かプロパティ経由じゃね?
外から変数弄りたいからメソッドかプロパティという発想は間違っている そんなもんパブリックフィールドと変わらん まずプロパティやメソッドありきでそれをフィールドで実装するんだよ
>>832 そういう分かったような分からないような議論が一番間違ってる
おれは全部public。これがおれの流儀。パロパティとか無駄なコードだよ。
お前の流儀が通じる範囲でどうしようがお前の勝手 カプセル化ってそれが通じない範囲とのやりとりに使うもんだからな
プロパティないc++はカプセル化できない欠陥言語。
読み取り専用という意味ではc#が欠陥でc++のほうが強力。
例えばある値を更新したタイミングで他の値も計算しなおしたいとかオブジェクト再描画したいとかなった場合 フィールド直接変更されると使ってる場所すべて変更しなおさないといけなくなるだろ
やる必要がない場合は?
たいていクラス内部を同期化する計算はコストは高いのでReCalc()とか別メソッドにする。 プロパティ弄られたら再計算にすると、関係するプロパティが複数ある場合、 無駄な再計算が大量に発生してしまう。ExcelみたいOn/Offできるのが理想だけど。
>>840 どんな巨大データを扱うクラスなんだよw
言いたいことは分かるが、そういう問題が発生しうるのはGUI関係ぐらい。
確かに再計算の問題はめんどくさいね 複合的な更新なら専用のメソッド作るよ プロパティで個別にX,Y,Zいじるんじゃなくて setXYZ(x,y,z)みたいな XAMLで誤解して何でもバインドでやってたら無茶苦茶になった覚えがある
>>841 GUIの再計算なんて知れてるw
画像フィルタのパラメータを変えるとかさ。他にもシミュレータとかいっぱいある。
>GUIの再計算なんて知れてる WPFが重い理由がレイアウトエンジンの再計算コストなんだけどなあ
例えばWrapPanelに大きさ不揃いアイテム突っ込むと固まる
XMLだから重いんだ。
読み込んだ後もXMLで持っている必要性はないんだよボウヤ そんな事で遅い理由を誤魔化さないでほしい
計算じゃなくてif分の塊でストールしまくってるだけという。
Androidが遅いのはUIがXMLで作成されているせい ↓ 保存される時はバイナリに変換されますよ ↓ XMLは可搬性が持ち味なのにバイナリに変換するなんて論外だろ!XML名乗るな ってやり取りをWPFスレでやったのを思い出した
つかWPFのアレはバインドにバインドを重ねるから指数関数的に伝播する箇所が増えるのが根本的な問題だと思うが
環境シミュレーションやレイトレーシングと同じ理由か。 リアルタイム性を要求するGUIにおいてWPFアーキテクチャはゴミだということだ。
しかしMetroは強制WPFだぜ(正確にはSL)
だからMetroは流行らない
WPFのどこが悪いの?
操作性が最悪。ユーザーから不評多し。
デザイン重視したVistaのようだ。
もうWinRT以外はレガシーアプリになるんだろうなぁ・・・
とにかく重い 開発者から不評多し
860 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 17:46:44.17
そもそもウインドウサイズを任意で変えれるwindowsであのシステムは辛すぎるよな サイズ変更したら再計算って まあその点メトロはまだいいほうなのかねえ 基本スクリーン全面を覆うんだっけ?
WinRTでメトロスタイルで作ったら、ワード使う時はワードだけ。エクセル使う時はエクセルだけ のパネル一枚仕様になるの?やだなぁ
退化だよなー
劣化だよなー
864 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 20:37:24.05
wpfはListViewが酷いのが何とも
マルチモニターだけどアプリ1個だけってことないよな
すいません、どうかお知恵をお貸し下さい。 MarshalAs属性のメンバ変数を持つ構造体の参照渡しで質問があります。 C#〜C#間でのマーシャリングの発生の有無の証明をどうやって取ればよいのか、知るのが目的です。 ※更に、この質問文の中で、そもそも技術に対する私の理解がおかしいと感じた場合、ご指摘頂けると幸いです。 C++及びC#両方から使われる、C#のクラス(以下、便利関数クラス)があります。 この便利関数クラスのメソッドは、メンバにMarshalAs属性を付けた構造体(以下、マーシャル構造体)を 参照渡し(ref指定)で受け取り、それに対して、様々な処理を行うものです。 C++は.tlbを用いたCOM相互運用で便利関数クラスへアクセスします。 ここで区切ります。
867 :
866 :2012/03/31(土) 20:52:51.30
※マーシャル構造体の例 public struct stMarshal { public int id; [MarshalAs(UnmanagedType.BStr)] public string szBstr; }; ※C++側の構造体の例 struct stCpp { public int id; public wchar_t*; } ここで区切ります
868 :
866 :2012/03/31(土) 20:55:38.56
ここで、C++が便利関数クラスのメソッドへC++側のstCpp構造体のポインタを渡した時、 マーシャリングが行われ、wchar_t*がBSTRに変わると理解しています。 (ただし、C#内部ではあくまでstring(属性としてBSTRが付いているだけ)として扱うことができ、楽である) しかし、C#が便利関数のメソッドへstMarshal構造体を参照で渡した場合、 この場合、同じstMarshal構造体を使用しているのですから、マーシャリングは起きない・・・はずだと考えています。 もし、マーシャリングをされると、処理コストが掛かってしまうので、よくありません。 しかし、ここでマーシャリングが行われていない! という証拠を提示する方法が分からず、 説得材料をどう作成すればいいのか分かりません。 長々とした質問で恐縮ですが、どうかお力をお貸し下さい。
869 :
866 :2012/03/31(土) 20:58:22.09
>>867 のC++側の構造体の例に間違いがありました。すいません。
※C++側の構造体の例
struct stCpp
{
public int id;
public wchar_t* pwChar; ←変数名を書いてなかった
}
>ここでマーシャリングが行われていない! という証拠を提示する方法 自明だと僕は思うけど なんか悪魔の証明っぽいなぁ MarshalAsAttributeのMSDNの説明で >Indicates how to marshal the data between managed and unmanaged code とあるから、managedコード間には関係ないはずだけど。 managedコード間のマーシャリングという概念が意味不明だしなぁ
ただのキャストですよ。
昨日読んだ「大量の無駄なエビデンス」の一端を見た気がする
874 :
866 :2012/03/31(土) 21:24:07.98
>>870 >>managedコード間のマーシャリングという概念が意味不明だしなぁ
そう・・・ですよね。 じゃあいいのかなと思い始めました。
>>871 ただのキャストというのは、マーシャリングという言葉(私にとって少し曖昧です)が示す、
その実際の動作のことでしょうか?
>>872 あっ、おっしゃる通りですね、教えて頂きどうもありがとうございます。
875 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 21:33:21.30
HttpWebRequestでコンテンツを取得するプログラムを作っています。
以下のプログラムの ※ここ でReadしてもlenに最大で8192までしか入りません。
一度にもっと大きく読んでほしいのですが、どうすればよろしいのでしょうか。
byte[] buff = new byte[10240];
int len = 0;
var req = (HttpWebRequest)HttpWebRequest.Create("
http://www~ ");
var res = req.GetResponse();
var st = res.GetResponseStream();
while ((len = st.Read(buff, 0, buff.Length)) >= 1) { //※ここ
}
>>874 マーシャリングの介在の有無を知りたい動機はパフォーマンスへの影響の有無が知りたいから。
逆に言うと、パフォーマンスへの影響の有無が分かれば、マーシャリングの介在の有無は別にどうでもいい。
そうじゃない?
そして、パフォーマンスに影響が出るかどうかは実測可能だよね?
>このメソッドは、データを buffer パラメータに読み込み、正常に読み込まれたバイト数を返します。 >読み取ることができるデータが存在しない場合、Read メソッドは 0 を返します。 >Read 操作は、size パラメータで指定されたバイト数に達するまで、使用できるデータをすべて読み取ります。 つまり使用できるデータがまだ無い?
878 :
866 :2012/03/31(土) 21:57:41.65
>>876 さん
>>マーシャリングの介在の有無を知りたい動機はパフォーマンスへの影響の有無が知りたいから。
逆に言うと、パフォーマンスへの影響の有無が分かれば、マーシャリングの介在の有無は別にどうでもいい。
そうじゃない?
その通りです。
パフォーマンス計測はやるとしたら・・・
@今までの質問文のように、MarshalAsを付加した構造体で、便利関数のメソッドを1万回くらい呼んでみる。
AMarshalAsを付加しない構造体とメソッドを作成し、@と同じことをする。
でしょうか。Stopwatchクラスを用いて、時間を測ればいいのですよね?
※他プロセスは極力切れば宜しいですよね。 マルチコアは時間計測にばらつきが生じると聞きましたが、本当でしょうか?
いいからやってみろよ
>>875 、
>>877 NetworkStreamに渡されるSocketのReceiveBufferSizeがデフォルトで8192だからだと思われる。
思われるが、どうすればいいかは分からん。
881 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 22:02:28.05
>>875 >>877 8192ってもろバッファなどで見かけるサイズだしなあ(4096x2)
byteで受け取る以上はバッファ単位で受け取ってはコピーして・・・の
繰り返ししかできないんじゃないの?
882 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 22:13:14.47
結局のところ8192バイトがn個と8192未満が1個ある場合があるってことなので それを連結していくなりすればいいだけだよね
妥協可能な要件かはまだ分からんぞー 妥協できないってことも無いと思うが 後は諦め切れなくて食い下がる可能性もあるか? でもそれは自力で調査続けてもらえばいいか どこが問題かは見えてるしな 気の済むまで
C#初心者なのですが このスレでお前らがIDを出すにはどうすればいいですか?
885 :
866 :2012/03/31(土) 22:48:39.93
>>879 計測した結果、差が無いということがわかりました。
>>866 からの質問はこれで解決しました。
質問に答えて頂いた皆様、ありがとうございました。
8192バイトもいるならブラック企業
listboxのコレクションの数を取得するには?
ListBox.Items.Count かな?
ども
汎用的クラスってどのように管理してますか? あの汎用クラスってどのプロジェクトで作ったのか忘れてしまうんだけど
知らんがな
ライブラリ用のプロジェクト一個つくって全部そん中 仕事じゃないからなー、これは出しておkこれはダメとか分けなくていいから楽
一つのファイルに クラスが何個もあるとダメなのか
(;^ω^)ListBoxのコレクションに内部の値を持たせたいお・・・ (;^ω^)TreeNodeのTagみたいな感じだお
C++で作られたdllをC#で使いたいんだけど DllImportで使えるのはわかったのですが DLLへの参照をどのように設定すればいいかよくわかりません 参照設定では無理でした 例えばC:\Windowsにdllを入れてしまえばそのまま使えますが この場合dllのインストール作業が必要になるのでやりたくないです 自分のソフトと同じフォルダにdllを配置してインストール作業をしなくても 使えるようにしたいのですがどのようにすればいいですか?
いや、exeの横においとくだけだが
>>896 あ、できたw結構悩んでたのに
exeと同じフォルダじゃなくて、別のフォルダの中にdllがあったので
相対パス書いてやればよかったんですね
>>894 DataSource/DisplayMember/ValueMember あたり
>>894 ヒント:Itemsはobject型のコレクション
俺だったらListBox.Tagにコレクション入れてお茶濁すわ
ポインタがねーと不便じゃねーか! 値型とか死ねよ!
>>894 ListBoxは文字列しか扱わないんだから不要
どうしてもというならFlowLayoutPanelを使うとか
WPFでやるとかになる
ListBoxとかComboBoxに表示される文字列はToString()の値だろ? つまりToStringをオーバーライドしたクラスを項目としてぶち込めばおk
ネトウヨ目撃
906 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/04/01(日) 15:03:17.03
和田と真弓がどうしたんだ?
>>902 きっとその人はデバッグ用に内部の値をリアルタイムで書き換えるような動作をさせたいんだと思うよ
つまり変数の値を読み込んだり、書き換えたりできるようにしたいと
これをする場合ListBoxからインスタンスを特定する情報が必要になるがポインタがないので
インスタンスを確定させる情報がたくさん必要になって鬱
ポインタ坊は頭悪そうだから引っ込んでていいよ
>>907 GUIに対してそういうことしなければいけないって事自体がおかしい
>>910 じゃあ、特定のクラスのメンバ変数の値を表示して書き換えたりするようなことをしたいときはどうしたらいいの?
値型をラップするのが面倒なときはNullableに突っ込んでる
インスタンスを特定する必要があるのなら自分で関連性を持たせりゃいいだけの話 出来合いのクラスしか利用できないような残念な頭してるわけじゃないでしょ
ListBox なら DataSource 経由させれば出来合いのクラスのままで 普通に表示文字列と内部値を管理できると思うが
いや、だからさあ… public class MyListBoxItem { public string Value { get; set; } public object Tag { get; set; } public override string ToString() { return Value; } } これで何か不満なわけ?
値型のポインタが無い事が不満
ListBoxのTagがほしいわけじゃないんで
>>915 あれ?それ動く?
値型はオブジェクト型として格納できなくね?
配列もインデックス対応してなさげ
>>918 >値型はオブジェクト型として格納できなくね?
このレベルで他人にアドバイスとかしないほうがいいよ
迷惑だから
配列もインデックスがどうのこうのってのも意味不明。
>>919 やってみろって元の値はかわらないっしょ?
ああ愚かしい
実際にやったことがないから 値型のobject型も参照型のobject型も同じだと思ってんだろ 値型のインスタンスを特定するのはかなり困難だ
Size Size { get; set; } Size.Width = 192; どうせこれ↑で変わらないよ><とか言ってるんだろ… 春だなー
第三者から言わせてもらうけど 話がかみ合ってないぞ
int,bool,floatなんかは値型なのでその形じゃ無理だなー stringは参照型だからできるんだよね
最初の質問者ちょっと戻ってこい 「だと思う」で語り始めたあたりから脱線しすぎだ
894 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/01(日) 12:58:11.13 (;^ω^)ListBoxのコレクションに内部の値を持たせたいお・・・ (;^ω^)TreeNodeのTagみたいな感じだお 最初の質問者はTagみたいなのでいいって言ってるからTagでいいんじゃね むしろそれでいいよ さあ、値型ポインタの話を続けようかw
値型のポインタ(みたいなもの)がどうしても欲しければNullable<T>使え objectに突っ込むときも面倒だから予めNullableにぶち込んどけ これでいいだろ
ポインタのスレでもやってたけど ICell c = Bind(et.na, 12); ってやらないと値型は元の値変えられないって話だろ
そのスレどこよ
値型の配列の場合はインデックスまで格納しておかないとダメなのか? 死ねるな
いいから死ねよ 二度と来んなクソが
それに何の意味があるのって話になってるみたいですけど
あとそのスレで配列のインデックスの話してるけど、アドレスで指定できるのって固定長で持ってる場合の話だろ。 C#はそんな宣言方法自体ないのに、比較しても仕方ないぜ。
元の値を変えたければ、構造体じゃなくてクラスにするかクラスとしてラップすべきなんじゃないの あとポインタじゃなくて参照な C#ではunsafeコンテキストじゃなければポインタ使えない
誰がそのスレ立てたか知らないけど ポインタの一面しか見ないで書かれてるな 英語の授業の1回目でHelloだけならって 英語って簡単だなって言ってるレベル
DataGridViewのセルが一つの変数に対応する、ってところ読んで何を目的としてるのかようやく理解できた。
要するにセルに対してポインタを関連付けられれば*value = 123;で済むのに、できないからvalue[12] = 456;の添字とか別に保管しなきゃならない?
>>940 表層的に考えるとそう思うかもしれないけど
コード書くときになんか違うと気が付くはず
このスレの連中は気づかないだろ
stringは参照型じゃないだろ string a=b; やったら新しくインスタンス作られるぞ
そしてListBoxのアイテムに対してポインタを関連付けられればポインタを使って構造体の全ての要素にアクセスできる、と。 この辺は思想の違いのような気がするけどな。 言語自体ポインタの使用が前提になっているとは言えない(構造体よりクラス推奨、ポインタが使いたければわざわざunsafeブロックとオプション付きビルドが必要)し。
DataGridViewに限って言えば1Row=1アイテムという構造になっているので、それを外した使い方(1Column=1配列とか)をするのはなかなか難しいね フレームワーク側が提示する方法以外は面倒ってのは、設定より規約方針を取ってるとそんな感じにならざるを得ないが
設計だろ…
ていうか、いまからでもポインタつけろよ
諸々の要望はMSDNでお願い。 ここは願い事(とは名ばかりの愚痴)発表会場じゃないんで。
特定の手法を用いる特定の人間のために私企業がなんかすると思うのか
メッセージボックスもメインウィンドウの後ろにまわったままだからな
オーナーウィンドウの中央に出ないしねーMFCは出るのに信じらんないよねー その後改善要望は受理されましたw?
>>953 MSDNで会社から要望だしてもらったらイミフな回答が返ってきて終了でした
なんか昔からだよ?
って返答だったけど
Win32APIはたしかにそうだな
でも俺等がもとめているのはMFCのメッセージボックスなんだよ糞が
って返したら「あ、そう」
だってさw
ユーザーにそんな設計すんなって言うか、結構デカそうな仕様を追加するか、どっちを選ぶかは自明だ罠 残念だけど犠牲を要求されるね
>>954 偉い
会話が通じただけ予想を上回ったよ
会社だろうが日本国王だろうがそんな対応だろうな ますます絶望的
>って返したら「あ、そう」 この対応で年間契約ん百万だからな マジでいい商売だと思う
定期的にこの話題をふる奴が湧くね。 ネタのつもりかガチなのか知らんけれども、いずれにしろいい加減痛々しい。 スレと関係ないけど、同じ言動の繰り返しを好む傾向って知的障害者とかアルツハイマーの人にも 同様に見られるわけだが、これって脳科学的に説明を与えることが可能なんだろうか。
嫌ならテンプレに載せるかもっといい話題振れ ・メッセージボックスの話題禁止 ・値型のポインタがなくてもくじけない強い心をもたない人はC#禁止
foreachで値型の配列書き換えさせろ並みの妄言だと思うけど…
そもそもC#の特性に即したまともな設計してたら値型のポインタ(参照)なんか使わないもんな
質問の内容よりなぜその質問をするのかのほうが意味があるんだよな それを書かないから不毛な言い争うになる
ポインタと参照は別物。何が違うかっていうとアドレス計算ができるかどうか。 ポインタに1足すと型サイズ分アドレスが増えるんだよね。 計算結果が有効なアドレス指すかどうか分からないから危険で時代遅れ。
C++のときからポインタに1足して次の要素を・・・なんて使い方してなかったぜ俺
金蔓
>>965 それは単にポインタをつかいこなせてないだけ
Cならともかく、C++だとそういう事になることもあるだろう
>>967 いや、しなくていいならする必要ないだろw
日曜プログラマならいいんじゃね 一つのやり方しか知らないなら他人のソースなんてまともに読めないだろうけど
いや全く 必要性が無いのにやるのはバカのリファクタリングだけで十分
リファクタリングのスレではリファクタリングはオナニーでFAとか結論でてるなw
知ってるのと使うかどうかは別の話だろ アンチパターン使いこなしてるのか?
そりゃもうバリバリですよ
tagにguidを入れてハッシュで管理すればいいと思う
C#は生産性がいい、先進的という評価は時々聞くし、自分で使ってみて好きに なったんだが、不思議なことにあまり普及してないよな。 やっぱDelphiの遺伝子のせいだろうか。
変な人に絡まれる/ネガキャンしてるからだと思うよ
少なくとも黄金期のDelphiより普及してる気がするんだが・・・
Delphiは俺の黒歴史。大量にあるソースどうすんだよ・・・
Application.Runしていないform1から progressBarのあるform2をダイアログとして開き そこで重い処理を別スレッドで処理し その別スレッドのイベントを受け取って 今どのファイルを処理しているかを取得して form2のラベルを書き換えているのですが 別スレッドからフォーム内のコントロールを操作すると エラーができるはずなのに、普通に書き換えられているんですが このまま続行してもいいですか? Invokeメソッドを使用したほうがいいんでしょうか
>>976 たぶん何度も既出だと思うけどC#というより.NETの問題。
最大のボトルネックは起動、特に初回起動の重さ。
もっとも、これはやっと最近になって普及を始めたSSDとx64でそれほど致命的な問題では
なくなりつつはある。
ただそうはいっても、特にビジネスユーザーの現場でHDDベースのx86マシンのシェアが
無視できる値になるのにあと何年掛かるかって言うと...たぶん5年ではきかないという現実もある。
あとは.NET Frameworkのバージョン多過ぎ。
コントロールについてるTagって使ってもいいの?
ビルド設定は?
立てれるかやってみます
986 :
980 :2012/04/01(日) 20:18:39.83
溺れる者は藁をもtask
(;^ω^)listboxのItems[int]からValueMemberの値を取得するにはどうすればいいんだお? (;^ω^)次スレで質問したほうがいいかお・・・?
うめ
日経BPのムックを見ながらテキストエディッタを作ってます。 作っていると言っても本の通りに入力しているだけですけど。 フォームにTextコントロールを貼りつけてテキストを表示していますが、 このTextコントロールは何行まで表示できるのですか?
テキストエディッタでカーソル行にアンダーラインをひくことは できますか?
16 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/02(月) 04:21:21.18 屑は前スレ埋めることもできねーのか
18 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/02(月) 14:56:21.40 目の前のレスも読めねー屑は半年ロムってろ
屑のお言葉で埋めるということか 16 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/02(月) 04:21:21.18 屑は前スレ埋めることもできねーのか 18 名前:営利利用に関するLR審議中@詳細は自治スレへ[sage] 投稿日:2012/04/02(月) 14:56:21.40 目の前のレスも読めねー屑は半年ロムってろ
屑が五月蠅いから埋めますね
屑が五月蠅いから埋めますね
屑がウルサイから埋めておきますね
屑がウルサイから埋めちゃおうね
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。