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


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

くだすれ.NET(超初心者向け)



1 名前:デフォルトの名無しさん [2006/10/07(土) 17:28:33 ]
このスレッドは
どんなに「くだ」らない.NETプログラミングに関する質問でも
誰かが優しくレスをしてくれる「すれ」っどです。
質問者自身何がなんだか分からない質問でも勇気をもって書き込んで
ください。お礼は.NETアプリケーションの普及と初心者の救済を
お願いします。

659 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:53:21 ]
それは657にエスパーであれっていってるのと同義だと思うけど

660 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:57:54 ]
C#が1.1なのか他のバージョンなのか。
リフェレクションはAssembly.LoadFromを使っているのかそれとも別の方法か?
リフェレクションで読み込んで呼び出している部分のソースをさらす。
VBで同じ手法のリフレクションを使って実現できているのか。
「Base.dllが見つかりません。」じゃなくてスタックトレースを出せ。
E伊東さんとお知り合いか?

とりあえず、このくらいは書いとけよ。

661 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:44:55 ]
リフェレクションえろいな

662 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:47:14 ]
>>656
無理。
依存してるライブラリが更新されたらコンパイルしなおす必要がある。
さもなくば、動的にクラスを構成しないといかん。

663 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:16:46 ]
厳密名を使ってるなら話は別だがPublicKeyToken=nullのときはVersionのチェックはない。


664 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:55:34 ]
LoadFromが原因だろう。
厳密名とかの話じゃない。

LoadFromで読んだ場合、自動的に同じフォルダのBase.dllを
読んだりはしてくれない。
AssemblyResolveなどで自分でハンドリングして読み込むか、
事前にBase.dllもLoadFromで読んでおくことはできる。

でも、アプリのフォルダを自由に指定とかなってくると、
たぶんどっかでトラぶってにっちもさっちも行かなくなると思うぞ…


665 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:50:24 ]
フォーム1で使っている変数(数字の1〜100)を
フォーム2にとばして使いたいのですが、どうすればいいのかわかりません。

自分で調べた所、プロパティを設定すればいいとのことでした。
ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard47.htm

ここを参考にして色々とやってみたのですが、
どうもうまく実際に使っているXの値を別のフォームに送れません。

どうか、ヒントをください。

666 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 20:13:58 ]
[ヒント]
プログラミングに王道なし。

いやまじめな話、そのレベルから掲示板で解説しろってそりゃ無理あるぞ。

667 名前:656 mailto:質問 [2008/08/11(月) 22:59:52 ]
>>660
C#は1.1です。
try
{
 Assembly a;
 a = Assembly.LoadFile("C:\App\ModA.dll");
 foreach(Type type in a.GetTypes())
 {
  if(type == typeof(インターフェース))
  {
   return true;
  }
 }
}
catch(Exception e)
{
 MessageBox.Show("エラー発生");
}

ソースはこんな感じです。スタックトレースってのはよく分かりません。
ごめんなさい。

>>664
Base.dllを先に読み込めばいいんですね。
明日試してみます。



668 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:05:34 ]
ってしかもLoadFileじゃねーかよ

669 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:28:49 ]
>a = Assembly.LoadFile("C:\App\ModA.dll");

もしかして〜
a = Assembly.LoadFile(@"C:\App\ModA.dll"); 
とか
a = Assembly.LoadFile("C:\\App\\ModA.dll"); 
で直ったりして

670 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:44:47 ]
まさかね
まあBase〜っていってるから違うと思うけど。

しかしなー、LoadFromやLoadFile系はトラブるんだよなー
できればフォルダを自由に指定ってのはやめた方が無難だけどなー


671 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:50:07 ]
LoadFileはいろいろ制限が多いし、
LoadFromは署名がないと相対パスしかダメなんだっけ。
やっぱ構成ファイルを書きまくるとか。

672 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 00:25:37 ]
MSDNから
>LoadFile は、LoadFrom メソッドとは異なり、ファイルを LoadFrom コンテキスト内には読み込みません。
>また、読み込みパスを使用して依存関係を解決することもできません。

ModA.dllのあるディレクトリから依存のあるBase.dllを探してくれない

673 名前:656 mailto:質問 [2008/08/12(火) 00:41:21 ]
>>669
書き込みミスです。@付きになってます。すみません。


LoadFromにすれば直るのでしょうか?
>>664の先に読み込むというのが気になるので、
それをまず試してみようと思います。

どちらにしても今すぐ確認はできませんので、
確認し次第再度書き込みます。

いろいろ助言をありがとうございます。

674 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 00:45:38 ]
>>664はLoadFileの制限ぽい感じだな


675 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 00:53:41 ]
C#でアプリ作ってるのですが、.NET Framework入ってない環境で起動した場合、
強制終了になる前に任意のメッセージ出して終了するにはどうすればよいでしょうか?


676 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 08:07:28 ]
環境を調べるネイティブアプリ作って、入って無ければエラー出して終了、
入っていればC#アプリを起動するとか。

677 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:27:53 ]
>>676
そのつもりでDOSスタブみたいな形で埋め込めればいいなぁと
あれこれ模索してたりしてたんですが、やっぱ分けるしかないでしょうか。



678 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:33:44 ]
>>677
先頭のほうにmscoree.dll::_CorExeMainを呼ぶjmp命令があるから、
その飛び先を変えてやればいいと思う。

ちなみに、XP以降のWindowsローダーはマネージドアセンブリを読み込んだ場合、
このネイティブなスタブコードを実行せずに、_CorExeMainから直接実行し始める。

679 名前:678 mailto:sage [2008/08/12(火) 15:15:17 ]
何が言いたいのかよく分からない文章になってたけど、
要するにXP,Vistaあたりでは必要なバージョンのランタイムがないときに、
実行前に任意のメッセージを出すことはできない言うことです。

スタブコードを書き換えるのはやったことがないけど、そこに感染するウイルスがいくつかあるんで、
もしかしたらアンチウィルスソフトウェアに文句言われる可能性はあるかもしれないですね。

680 名前:656 mailto:sage [2008/08/13(水) 00:01:05 ]
LoadFromを使用して、先にBase.dllを読み込んでおけば
無事動くようになりました。

新たな問題はいくつか出てくるようになりましたが、
今のところ少しずつ解決していけてるので大丈夫だと思います。

丁寧な回答ありがとうございました。

681 名前:DD mailto:sage [2008/08/20(水) 13:29:19 ]
ASP.NET2.0のGridViewで質問があります。使用言語はC#です。
1つの画面に以下のコントロールがあります。
・TextBox (TextBox1)
・Button (Button1)
・GridView (GridView1)
・SqlDataSource (SqlDataSource1)
TextBox1に検索する主キーの値を入れ、Button1をクリックすると、
その主キーの行の背景色を変更する、といったことをやりたいと思っています。
GridView1のSelectedRowStyleのBackColorに適当な色を指定して
DataBoundイベントでGridView1.DataKeys[i].Valueをループで検索。
見つかったらGridView1.SelectedIndex = iとすることで
ほぼやりたいことは実現できています。

この状態でGridView1のAllowPagingをTrueに設定し、
Button1クリック時に、検索してヒットした行のあるページに
自動的に切り替えるにはどのようにすればよいのでしょうか?
現状のコードでは、現在のGridView1のページしか検索出来ないためうまく出来ません。
どなたかご教授願えないでしょうか?

682 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:15:56 ]
>>681
PageIndexで表示したいページを設定できる

683 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 09:19:12 ]
VC# 2005とWindows Forms(.Net Framework 2.0)でOfficeライクにお絵かきできるコントロールを探しています。

実はVisioのDrawing Control(ActiveXベース)がやりたいことを網羅しているのですが、
アプリケーションを動作させる全ての端末にVisioを入れなければいけないので
泣く泣くあきらめました。
www.c-sharpcorner.com/UploadFile/mgold/VisioInDotNet12032006222024PM/VisioInDotNet.aspx

実行環境が無料で何か良いコントロールをご存知の方は
お教え頂けますでしょうか。よろしくお願いします。

684 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 22:54:37 ]
VC++2005EEとForm(.NET2.0)で作ったアプリを配布したいのですが
どのような配布形式が一般的でしょうか?
VS.net2003bootstrapper plug-inのようなものがあれば使いたいです。

685 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 02:37:40 ]
.NET2.0はかなり普及してるし、そのままでも良いとは思う。

必要ならこの辺を参考に
ttp://dobon.net/vb/dotnet/deployment/dotnetbootstrap.html

686 名前:DD mailto:sage [2008/08/25(月) 18:12:57 ]
>>682
PageIndexで表示したいページを設定できることは分かっております。
問題なのは、DataBoundイベントでGridView1.DataKeys[i].Valueをループで検索した場合、
現在のPageIndex内のデータしか検索できないのです。
やりたいのは、全てのページを検索し、ヒットしたらそのページを表示することです。
DataBoundイベントではなく、何か別のイベントで検索する必要が
あるのではないかと思うのですが、
そのイベントが何なのかが分かりません。
どのようにしたら良いのでしょうか?

687 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:01:53 ]
GridViewではなく、DataSource自体をぐるぐる回って調べていくとか。
泥臭いかw



688 名前:DD mailto:sage [2008/08/27(水) 13:39:15 ]
>>687
例えばDataSource自体をぐるぐる回って調べるとしたら、
どのイベントを捕まえればよいんでしょう?
実はそれをやろうとしてみたんですが、どのイベントで処理すればよいのか
分からなくて・・・。


689 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:57:48 ]
一端DataViewに取って、後はそれ使えば?
常識的に考えて並びは一緒だから、現在のページ×1ページあたりの行数+indexで行けるハズ

690 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:34:42 ]
>>687
泥臭いも何もそれが正しいやり方だと思うんだが。
>>688
イベントって、Button1のクリック以外に何があるん?
GridViewのDataSourceにセットしたものがDataTableオブジェクトだった場合、
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowIndex = -1 Then Return
If e.Row.Cells(1).Text.Contains(Me.TextBox1.Text) Then
' 検索ワードが入っている行の背景を緑に
e.Row.BackColor = Drawing.Color.LightGreen
End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rIndex As Integer
Dim tbl As DataTable = CType(Me.GridView1.DataSource, DataTable)
For rIndex = 0 To tbl.Rows.Count - 1
If tbl.Rows(rIndex)(1).ToString().Contains(Me.TextBox1.Text) Then
' 検索ワードが見つかったらループから抜ける
Exit For
End If
Next
' ページインデックスを算出
Dim pIndex As Integer = rIndex \ Me.GridView1.PageSize
' GridViewに算出したページインデックスをセット
Me.GridView1.PageIndex = pIndex
' 適応実行
Me.DataBind()
End Sub

691 名前:DD mailto:sage [2008/08/28(木) 18:27:18 ]
>>689
一端DataViewに取る、その方法が分からないんです(T_T)
そこのところ、ご教授願えないでしょうか。

>>690
Dim tbl As DataTable = CType(Me.GridView1.DataSource, DataTable)
とありますが、当方C#なもので、よく意味が分かりません(^^ゞ
C#で書くと
DataTable tbl = (DataTable)GridView1.DataSource;
なのかな、と思って試してみましたが、GridView1.DataSourceがNULLでうまくいきませんでした。


692 名前:DD mailto:sage [2008/08/28(木) 18:42:28 ]
>>689
>>690
おかげさまで解決いたしました!
以下のコードでDataTableに取り出すことが出来ました。
DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
DataTable table = dv.Table;
丁寧な解説、どうもありがとうございました。


693 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:47:23 ]
C#で作ったプログラムからExcelを操作するプログラムを作りたいのですが、
Excelを操作する方法についてインターネットで調べてみると
どうやらExcelのバージョンによって参照設定するCOMってやつのバージョンが違うみたいです。

今作ってるプログラムをそのまま実家にメールで送って使ってもらう予定なのですが、
COMのバージョンが違うと正しく動かない可能性もあるのでしょうか?

使う予定の機能はExcelを読み込んで決まった位置に値を書き込むぐらいなんですが、
不具合を起こしにくいコツなどがあれば教えてください。

694 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:33:36 ]
> 不具合を起こしにくいコツ
.NETでOfficeのCOMを利用しないというのが一番の対策じゃないかw
xlsファイルなどを直接操作できるライブラリを使うのがお勧め

695 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:40:40 ]
>>694
すみません、できれば.NETを使用することを前提にお願いします。
COMって、自分で作ったdllみたいにReflectionで動的に探してきたりはできないんでしょうか?

696 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:17:30 ]
それはできる。
でもメンバアクセスまで全部リフレクションでやる羽目になる。

悪いことは言わないからせめてVB.NETにしとけ。


697 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:59:19 ]
>>696
ありがとうございます。
とりあえずGoogleってた結果、
Type.GetTypeFromProgID()というのを見つけたので実装はできそうです。

VBを1から勉強するかは後で考えるとして、
COMを動的参照するときって、普通はどういうクラスのどういうメソッドで参照先dllを探すのですか?

今までは自分で作ったdllを動的参照することしかしたことがなかった上、
インターフェースは静的に参照してそれを実装したクラスをReflectionで見に行く
ってことしかしたことがないので、COMの一般的な探し方を教えてくれませんか?

名前はともかくとして、COMのdllがある場所ってどうやって調べるんですか?



698 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:11:05 ]
>>697
レジストリ(HKCR)を探せば見つかるが、プログラミング目的では普通やらない。
みんなProgIDとかClsIDとかで識別するから。

それに、DLLなら直接読み込んでオブジェクトを作ることも可能だが、
EXEに実装されているとどの道COMのAPIを介さないといけない。

699 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:19:01 ]
>Type.GetTypeFromProgID()
を使うんだからおかしなことを考える必要はない。

問題は、インターフェイスを参照できないから、
メソッド呼び出しとかまですべてリフレクションでやらなきゃならないこと。


700 名前:DD mailto:sage [2008/09/02(火) 11:03:35 ]
>>697
とりあえず、VC#2005なら、ソリューションエクスプローラーの参照設定右クリックから
参照の追加。
COMタブを選択して、Microsoft Excel XX.X Object Library を選択して
OKボタンクリック。
これで一応使える。
COMオブジェクトは最後に必ず開放。こんな感じでどうでしょう。

/// <summary>
/// COM オブジェクトの参照カウントを解放する
/// </summary>
/// <param name="comobj">COMオブジェクト</param>
private void ReleaseComObject(Object comobj)
{
    // COMオブジェクトだったら
    if (comobj != null && System.Runtime.InteropServices.Marshal.IsComObject(comobj))
    {
        try
        {
            System.Runtime.InteropServices.Marshal.ReleaseComObject(comobj);
        }
        catch { }
        finally
        {
            comobj = null;
        }
    }
}



701 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 12:14:10 ]
>>700
それだと複数バージョンのExcelに対応できないだろ>>693読め。

702 名前:DD mailto:sage [2008/09/02(火) 13:11:52 ]
>>701
あ、その通りですね(^^ゞ
以前Excelを扱った時はSpreadsheetGearを使ったので
COMを使った操作は良く分からないです。。。
サードパーティのライブラリを使用したくないとのことですので
これは使えませんね。
お役に立てずm(__)m

703 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:25:27 ]
> comobj = null
意味ないじゃんw

704 名前:DD mailto:sage [2008/09/02(火) 15:26:49 ]
>>703
ですね(^^ゞ
はった後私もそう思いました。

705 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:07:53 ]
>>701
バイナリになってしまえば問題ないんだよ。
「複数バージョンのExcelに対応できない」のはあくまで開発環境のみ。

一部バージョンが違うと例外が発生するメソッドがあったりするけど、
そこだけ個別に対応すれば問題ない。


706 名前:697 mailto:sage [2008/09/02(火) 21:11:51 ]
いろいろなご解答ありがとうございます。

今回は複雑なエクセル操作をするわけではないので、
すべてリフレクションでやるクラスを作って、それを使いまわそうと思います。
ありがとうございました。

707 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:33:39 ]
VBでクラスライブラリ作った方が簡単だと思うけどな。



708 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:26:51 ]
>>705
え?まじで?
うっそーん?


709 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:20:35 ]
VBAではセルの文字列の色をCellsのCharactersで調べられるのですが
.NETではどうればいいのでしょうか?

msdnにはRangeにCharactersがあるのですが
書いてみると定義がありませんと
エラーがでます。
using Excel = Microsoft.Office.Interop.Excel;

var xls = new Excel.Application();
var book = xls.Workbooks.Open(略
var rng = (Excel.Range)book.sheet.Cells[1, 1];

こんな感じでRangeクラスを取得してます。
ちなみにVS2008SP1を使っています。

710 名前:DD mailto:sage [2008/09/08(月) 10:36:38 ]
>>709
rng.Font.Color
で取得できるのでは?

711 名前:709 mailto:sage [2008/09/08(月) 19:52:53 ]
>>710
すいません、質問の内容を微妙に間違えてました。
取得したいのは文字列のn番目の文字の色なんです。
Characters(4, 1).Font.ColorIndex
と書くとVBAでは4文字目の色の取得や設定が
出来るんです。

それだと多分セルに設定された文字列の色になるんですかね?

712 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:09:12 ]
net導入するときはVB6を残したままでもいいですか?

713 名前:DD mailto:sage [2008/09/09(火) 11:55:55 ]
現在Visual Studio 2005 C#で以下のようなことを実現したいと考えております。
DropDownList(値にはIDが入っている)で選択した項目に一致するレコードをGridViewに表示する。
DropDownListにはALLという項目があり、これを選択すると
すべてのレコードを表示する。
このようなことをやりたいのですが、どうやったらいいのか分かりません。
現状ではALLを静的に追加しており、その値は0となっています。
また、GridViewのデータソースにSqlDataSourceを割り当て、
SqlDataSourceのSelectParameter(ID)にDropDownListの
SelectedValueを設定し、ALL以外の項目を選択した場合は
正常に動作しています。
どなたかご教授ください。

714 名前:DD mailto:sage [2008/09/09(火) 12:06:29 ]
自己解決しました。
bunise.seesaa.net/article/91995844.html
このページを参考にしてやってみてはいたのですが、なかなかうまくいかず
質問させていただきました。
結局は、SqlDatasourceのCanselSelectOnNullParameterをFalseにするのを
忘れていただけでした(^^ゞ
お騒がせいたしました。

715 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:36:55 ]
.NET2005環境を利用しています。

Private Sub ShowMsgBox(ByVal PromptText As String, Optional ByVal Type As Integer = 0, _
Optional ByVal Title As String = "")
に対して、配列CmdArgsの1番目(0番目ではない)〜3番目の要素を
引数として渡したいのですが、2番目・3番目の要素は省略される可能性があります。

呼び出しについて例としてPerlで書くと、「$ShowMsgBox(CmdArgs[1..$#CmdArgs]);」のように
不定要素数の配列をインデックス1から最後まで指定して投げることが出来ますが、
VBではどのような形で呼び出せばいいでしょうか。

要素数を判別して、条件毎に呼びだし方を変更するしかないでしょうか。

716 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:58:56 ]
>>715
ShowMsgBox(ParamArray args as Object())でも多重定義しとくとか。
まあどのみちその中で要素数を調べてToStringして別のシグネチャのShowMsgBoxを
呼び出すコードを書くわけで、同じといえば同じかもしれないけど。

っていうか趣味の問題かもしれんがOptionalは使わない方がいいんじゃないか?

717 名前:715 mailto:sage [2008/09/10(水) 00:20:30 ]
>>716
なるほど、即レスありがとうございます。

要素数判定で呼び出し方を返る、という形で書いてみましたが
かなり冗長な呼び出し方になってしまい、本末転倒な感じがしてきました。

If CmdArgs.Length > 3 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2), CmdArgs(3))
ElseIf CmdArgs.Length > 2 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2))
Else '←必ず0、1番目の要素は定義されている
ShowMsgBox(CmdArgs(1))
End If

ShowMsgBox側で配列としてまとめて受け取ってから、
処理した方が良さそうですね・・・。

>Optionalは使わない方がいいんじゃないか?
C感覚で勉強中だったので、多重定義が可能なことを忘れていました。
もう少し勉強してみます(`・ω・´)



718 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:26:13 ]
ドレミファソラシドの周波数を算出するため、十二平均率
ja.wikipedia.org/wiki/%E5%B9%B3%E5%9D%87%E5%BE%8B#.E5.8D.81.E4.BA.8C.E5.B9.B3.E5.9D.87.E5.BE.8B
の周波数比を計算させたいのですが、ExcelのPOWER関数のような累乗根計算の方法はありませんか?

719 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:36:09 ]
Math.Pow

720 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 02:17:05 ]
>>719は累乗と累乗根の違いすら分かってないから参考にしないように。

721 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:17:17 ]
ニヤニヤ

722 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 08:55:11 ]
Math.Pow( >>720, 1.0/12.0);


723 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:37:07 ]
>>720
やる夫

724 名前:718 mailto:sage [2008/09/10(水) 12:12:07 ]
>>719,722
ありがとうございます!
以下のようにしたら十二平均律の周波数を算出できました。

Dim i As Integer, fr(12) As Double
For i = 0 To 12
    fr(i) = Math.Pow(Math.Pow(2, i), 1.0 / 12.0)
Next

725 名前:722 mailto:sage [2008/09/10(水) 12:35:12 ]
>>724
素直に
Math.Pow( 2.0 , i / 12.0)
と書くべし

726 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:49:08 ]
ワロタ

727 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:53:46 ]
素直なのは>>724なんじゃない?
整理したら>>725だけどさ

x  _
 √a  = a^(1/x)

であるから、

x  __
 √a^b = (a^b)^(1/x)

となり、十二平均律では、x = 12, a = 2, b = (1から12)となるので、

12 __
 √2^b = (2^b)^(1/12)

bをiとして、

2^i = Math.Pow(2,i)

これにより、

Math.Pow(Math.Pow(2, i), 1.0 / 12.0)



728 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:02:47 ]
意味が分からずに言われたとおりに簡略化して書いてる奴って職場だとホント困るんだよな・・・。

729 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:04:56 ]
中学数学でしょ

730 名前:722 mailto:sage [2008/09/10(水) 13:09:00 ]
主観入ってたわ。
頭の中で
x  __
 √a^b = a^(b/x)
になってた。

というわけで、>>725を訂正して、
Math.Pow()を2回呼ぶより、整理して1回にしたほうが良いと思う。
分かりにくかったら無視してくれ。

731 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:15:30 ]
Math.Powは見るからに処理長そうだしねえ
慣れるまでは理解するまでベタ書きが無難だが
慣れたら呼び出す回数を減らすことを勧めたい

732 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:44:50 ]
問題にはならないだろうけど、一応精度の問題もある

733 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:19:53 ]
ここぞとばかりにOOoのMath使ってみたんだけど
ほんとハナクソだな・・・('A`)モウツカワネ

www1.axfc.net/uploader/Img/l/2296233703/Img_20227.gif

734 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:30:52 ]
404 Not Found

735 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:32:29 ]
すまん、リファラ読んでるっぽいな。
www1.axfc.net/uploader/Img/so/20227

736 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 20:34:53 ]
>>727
発想が逆立ちしてるよw
数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。

12音階というのは2(1オクターブ)を対数軸上で12等分したもの、
というのが全ての出発点で12乗根√2っていうのはそこから導出した値に過ぎないんだよ。

対数軸(y = log(x))上の等差数列はxの世界では等比数列になる、って考えてもいいけど
普通は直感的に基準となる音からn番目の音の周波数は2の(n/12)乗倍だってわかるだろ。

737 名前:デフォルトの名無しさん mailto:age [2008/09/11(木) 16:35:43 ]
すみませんが、質問です。

Googleなどの検索エンジンで .NET の情報を効率よく集めるには、どのような
検索語にすればよいでしょうか?

ただ入力すると、.netというドメイン名にばかりヒットしてしまいます。




738 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:40:29 ]
>>736
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:43:02 ]
検索エンジンの使い方までサポートする幅広いスレだな

せめてVBで検索しろ

740 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:53:14 ]
>>739
ありがとうございます。C#で検索することにしました。
.NETは別にC#だけではないのですが、関係ないページばかり見つかるよりマシです。


741 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:55:30 ]
いやVisualStudioだろ

742 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:14:38 ]
VisualStudio は .NET だけじゃないんじゃ?

743 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:23:41 ]
だから.NETと組み合わせるんじゃ?
でもVisualStudioじゃ取りこぼし多そうだがなあ

744 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:40:51 ]
うん、組み合わせのつもりで言ったぞ
VisualStudio .NET 2005 +言語名なら確実だろう

745 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:45:11 ]
マイクロソフトは一般名詞を商標にして
いつの間にか自社製品を示す言葉にするのが得意だからな。

746 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:54:08 ]
そうだね。あれは本当に迷惑。
昔の話だけど .doc という拡張子は元々テキストファイルのものだったのに、
勝手に MS Word のものにされた。
Word という名前といい、いまだに腹が立つ。


747 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:56:00 ]
それはそれとして、ノイズが混じらなくて、取りこぼしをなるべく少なくする
には、どんな検索語がいいかな。
VisualStudioは、ちょと取りこぼし多そう。




748 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:14:16 ]
そろそろスレチじゃね
.NET資料の探し方とは言え、googleの検索仕様に左右される話題だし

749 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:31:12 ]
正規表現を使うって発想がないWindowsの天下で
わざわざ正規表現を実装する検索サイトはないよな

あったら凄まじく便利なんだが

750 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:34:42 ]
有るわけがない。
文化の問題ではない。

751 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:59:48 ]
ここで正規表現が使える奴が居るかも怪しい

752 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:45:57 ]
.NETにも正規表現クラスあるけどちょっと使い方がまどろっこしい

753 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:27:37 ]
正規表現は一種のツールだからな。
プログラミングサイドで実装されてても、
OS側が環境として提供してくれないと・・・

754 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:44:32 ]
>>746
外国だとテキストファイルに.docはマイナーだったって聞いている。
わざわざかぶること前提で.docに決めたわけなかろう。

755 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 00:04:36 ]
少なくとも.NETはトップレベルドメイン.netとかぶること前提だけどな

756 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:57:40 ]
しかし readme.doc は国内外を問わず添付されてた気が

757 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 10:03:53 ]
拡張子の制約で使い勝手を縛るのはWindowsとhttpのMIMEtypeだけだよ。



758 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 10:26:40 ]
知ったようなことを言う


759 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:59:51 ]
反論すら成立してない






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

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

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