ふらっとC#,C♯,C#(初心者用) Part21
■ このスレッドは過去ログ倉庫に格納されています
0001ななしぃ#
2007/11/18(日) 15:53:41「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレ: ふらっとC♯, C#(初心者用) Part20
http://pc11.2ch.net/test/read.cgi/tech/1191036844/
0429デフォルトの名無しさん
2007/12/06(木) 23:16:30インスタンスが理解できません
だれかわかりやすく説明してください
0430デフォルトの名無しさん
2007/12/06(木) 23:33:450431デフォルトの名無しさん
2007/12/06(木) 23:35:190432デフォルトの名無しさん
2007/12/06(木) 23:49:37クラス…社員
インスタンス…平社員の山本
みたいなのって余計混乱させるだけだと思う
0433デフォルトの名無しさん
2007/12/06(木) 23:58:59使ってりゃ分かる
0434デフォルトの名無しさん
2007/12/07(金) 00:44:24「標準項目の挿入」というのはどこにあるんですか??
0435デフォルトの名無しさん
2007/12/07(金) 01:46:15半角英文で書かれたWord文書を読み込んでXMLに出力するプログラムをC#(VS2003)で作成しています。
問題なのは、Word文書中に半角の「μ(みゅー)」や「π(ぱい)」が存在する場合で、読み込んでstring変数に格納した時点で「(」のような文字に変わってしまいます。
化けずにうまく読み込む方法はありますでしょうか?
ちなみに、半角の「μ」や「π」は、Wordの「挿入−記号と特殊文字」 メニューから挿入したものです。
よろしくお願いします。
0436デフォルトの名無しさん
2007/12/07(金) 01:55:51ポトペタしたあと、そいつをクリックするとそいつの右上あたりに矢印がでて、
そいつクリックすると出るウィンドウの中。
0437デフォルトの名無しさん
2007/12/07(金) 03:32:17コンソール出力だけど普通に化けなかったよ?
なんか情報出てないんじゃない?
0438デフォルトの名無しさん
2007/12/07(金) 05:22:03わ!
ありがとうございます!!
0439デフォルトの名無しさん
2007/12/07(金) 13:53:40トレースで出力してみましたが、文字化けしています。
全角なら問題ないのですが...。
0440デフォルトの名無しさん
2007/12/07(金) 13:55:36どう化けるの?
実際に出力してるコードは16進でダンプしてみた?
表示のフォントはどれにしてるの?
0441デフォルトの名無しさん
2007/12/07(金) 14:13:07string変数の中身はセミコロンのような文字になっています。
フォントは、Wordはセンチュリーで、VSの出力ウィンドウのフォントもセンチュリーに変更したら、こちらは正しく表示されました。
0442デフォルトの名無しさん
2007/12/07(金) 14:41:24ListViewItemを削除した時点で破棄されるのですか?
0443デフォルトの名無しさん
2007/12/07(金) 14:50:070444デフォルトの名無しさん
2007/12/07(金) 14:50:49でも削除した時点、ではないかな。
0445デフォルトの名無しさん
2007/12/07(金) 14:51:340446デフォルトの名無しさん
2007/12/07(金) 15:00:210447デフォルトの名無しさん
2007/12/07(金) 15:02:19その構造体が、アンマネージドリソースを確保していないが入りにはそれでOK。
0448デフォルトの名無しさん
2007/12/07(金) 15:24:07マネージコードである限り、どんなに無茶苦茶なコード書いてもBSODみたいな
破壊は原理的に起きないんでしょうか?
本当にこの辺理解しようと思ったら.netをきちんと勉強しないと駄目ですよね
0449デフォルトの名無しさん
2007/12/07(金) 15:30:270450デフォルトの名無しさん
2007/12/07(金) 15:30:39マネージドコードでかつ、マネージドリソースにしかアクセスしない限りは
BSOD 起こす前に OutOfMemoryException が起こる。
でも、結局、ライブラリ中とかでも Win32API を色々 PInvoke してて、
あんま楽観もできないかも。
まあ、多分、ドライバとかみたいに OS に深く食い込むものでもなければ
ブルースクリーンは拝めないと思う。
0451448
2007/12/07(金) 15:45:45つまり、マネージな世界で閉じてる限り、何があろうともBSODのような被害は起こりえないってことですね
ある意味初心者が使うには打ってつけの言語ですね
ところで>>447さんの
>確保していないが入りにはそれでOK。
は
>確保していない限りにはそれでOK。
という意味でしょうか?
0452デフォルトの名無しさん
2007/12/07(金) 16:15:200453デフォルトの名無しさん
2007/12/07(金) 16:21:000454デフォルトの名無しさん
2007/12/07(金) 19:25:38catchの中でどうしても取りたいです
クラス名とかエラー文字列とかいらないです
0455デフォルトの名無しさん
2007/12/07(金) 19:32:500456デフォルトの名無しさん
2007/12/07(金) 19:38:24エラー通達の方法自体を変えたのに。
0457デフォルトの名無しさん
2007/12/07(金) 19:39:120458デフォルトの名無しさん
2007/12/07(金) 19:42:250459デフォルトの名無しさん
2007/12/07(金) 19:46:480460デフォルトの名無しさん
2007/12/07(金) 21:58:20しらんかった。
つーかないだろ?
0461デフォルトの名無しさん
2007/12/07(金) 22:05:00やっぱC#の人はWinアプリ開発なのかな?
0462デフォルトの名無しさん
2007/12/07(金) 22:06:01言語論争につかうだけ。
0463デフォルトの名無しさん
2007/12/07(金) 22:10:150464デフォルトの名無しさん
2007/12/07(金) 22:10:580465デフォルトの名無しさん
2007/12/07(金) 22:15:16LLなんて軟派な言語は要らないんだぜ?
0466デフォルトの名無しさん
2007/12/07(金) 22:18:45Symbol フォントでμとかπ出すためのコードじゃないか?
Symbol フォントのμ、πってそれぞれ m と p に対応してた気はするけど。
0467デフォルトの名無しさん
2007/12/07(金) 23:02:39宣言の仕方と使い方の例を参照したいです。
0468デフォルトの名無しさん
2007/12/07(金) 23:52:270469デフォルトの名無しさん
2007/12/07(金) 23:55:34c#のせいじゃないと分かってますが…
0470デフォルトの名無しさん
2007/12/07(金) 23:58:470471デフォルトの名無しさん
2007/12/08(土) 00:06:570472デフォルトの名無しさん
2007/12/08(土) 00:27:530473デフォルトの名無しさん
2007/12/08(土) 01:08:01一部のよく使うものだけ覚えておけばあとは必要に応じて調べればいい
0474デフォルトの名無しさん
2007/12/08(土) 01:12:080475デフォルトの名無しさん
2007/12/08(土) 01:19:52その昔MFCなるものがあって、最悪だったぞ。
0476デフォルトの名無しさん
2007/12/08(土) 01:38:230477デフォルトの名無しさん
2007/12/08(土) 01:39:23これから入る初心者にとっては、昔に比べて相当恵まれた環境なんですかね、やっぱ?
0478デフォルトの名無しさん
2007/12/08(土) 01:41:4710年も昔と比べたら、何十倍も何百倍も生産性高いんじゃなかろうか。
0479デフォルトの名無しさん
2007/12/08(土) 02:42:060480デフォルトの名無しさん
2007/12/08(土) 02:42:11windows mobile6でファイルを同期させるプログラムをC#で書いているのですが、
ファイルの作成日や最終書き込み日時を変更させるには どうしたら良いでしょうか?
FileInfoやFileクラスだと、LastWriteTimeプロパティが読み取り専用で使えずハマってる現状です。
File.copy(string path)を使ってファイルをコピーすると、何故かファイルのミリ秒部分が
切り捨て、もしくは切り上げされているようで、書き込み日時が1秒ずれてしまうのを直したいのです。
0481デフォルトの名無しさん
2007/12/08(土) 03:00:29IDEの儲けなんて全体で見れば大したことないんでしょ?
0482デフォルトの名無しさん
2007/12/08(土) 03:00:51へ?File.SetLastWriteTimeは?
0483480
2007/12/08(土) 03:09:28何故かSetLastWriteTimeの方はサポートされていないようなんです。
0484デフォルトの名無しさん
2007/12/08(土) 09:19:44http://www.opennetcf.com/FreeSoftware/SDF14/tabid/91/Default.aspx
ここのソース見てみたらIntPtrとかでドロドロやらないと駄目みたい。
0485デフォルトの名無しさん
2007/12/08(土) 09:43:25CreationTime/LastWriteTime/LastWriteTimeはCE系はRead Onlyやね。
違ってるかも知れんけど多分Compact Framework上からは無理臭い希ガス。
まずWin32APIで出来るか確認して出来るようならDllImportする位かな。
漏れも今CE5.0+CFMで開発やってるけど、結構良く使いそうなメソッドや
プロパティーが端折られてて困る事が多々(つд`)
Win32API自体がサブセットな実装だからしゃーないんだろうけど。
0487デフォルトの名無しさん
2007/12/08(土) 12:16:380488デフォルトの名無しさん
2007/12/08(土) 14:01:280489デフォルトの名無しさん
2007/12/08(土) 14:35:54byte[] A = byte[0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07]
byte[] B = byte[0x03, 0x04, 0x05]
だとしたら、3を返してほしいのですが…
0490デフォルトの名無しさん
2007/12/08(土) 15:04:390491デフォルトの名無しさん
2007/12/08(土) 15:24:56っていうかそれ目的違うんじゃねーの?
普通に考えて。
0492デフォルトの名無しさん
2007/12/08(土) 15:31:01byte[] B = new byte[] {0x03, 0x04, 0x05};
string a = System.Text.Encoding.ASCII.GetString(A);
string b = System.Text.Encoding.ASCII.GetString(B);
a.IndexOf(b)
Encoding.ASCIIで、バイト列がそのまま文字列になるなら、これでいけると思うけど。
だめなら、素直にforでまわすとか。
0494デフォルトの名無しさん
2007/12/08(土) 15:36:490495489
2007/12/08(土) 15:42:44StringBuilderで1バイトずつ連結して、stringのIndexOf使うことにします。
0496デフォルトの名無しさん
2007/12/08(土) 15:46:52int indexOf(byte[] A, byte[] B) {
for (int i = 0; i <= A.Length - B.Length; ++i) {
int j;
for (j = 0; j < B.Length; ++j)
if (B[j] != A[i + j]) break;
if (j == B.Length) return i;
}
return -1;
}
0497デフォルトの名無しさん
2007/12/08(土) 15:59:590499デフォルトの名無しさん
2007/12/08(土) 16:02:25先生、止まりません><
0500デフォルトの名無しさん
2007/12/08(土) 16:34:420501デフォルトの名無しさん
2007/12/08(土) 18:09:40class A
{
public class A
{
public uint uiId;
public StringBuilder sbSTR;
public byte[] bData;
}
public static List<A> Alist = new List<A>();
public staitc SetData()
{
A _A = new A();
_Aにデータ詰める
Alist.Add(_A);
}
}
このクラスAはFrom1等から呼び出して使う感じなんですが、ここでAlistに入れたデータはFrom1の生存
期間中はずっとデータを保持してて欲しい為、AlistとSetData()をstaticで宣言しております。
しかしデータを詰める為のテンポラリー領域として_Aをnewしてリストに突っ込んでます。この_Aの生存期
間てどうなるのでしょうか?また_Aの生存期間が過ぎた時にAlistに追加されてる_Aも当然消えるのでしょ
うか?
0502デフォルトの名無しさん
2007/12/08(土) 18:14:05> このクラスAはFrom1等から呼び出して使う感じなんですが、ここでAlistに入れたデータはFrom1の生存
> 期間中はずっとデータを保持してて欲しい為、AlistとSetData()をstaticで宣言しております。
意味わかんね。FormAがAのインスタンス保持すりゃすむ話。
0503デフォルトの名無しさん
2007/12/08(土) 18:23:00誰かが使ってる(使える状況にある)限りは絶対消えない
0504デフォルトの名無しさん
2007/12/08(土) 18:48:49んとA内にはDllImportして使う他のメソッドも定義されてて全部staticで定義
されてるので、Form1側でAのインスタンス作ろうとするとエラーになるのです。
>>503
なるほどです。ちなみに色々本読んだりして探してるのですが、newした変数
/インスタンスの生存期間とか詳しく説明された物って全然見かけないのは、
気にしなくて良いからなんでしょうか?
どうしてもCの考えで、auto/static/mallocした領域に照らして考えてしまうの
で、この変数消えるんじゃね?と思える状況に多々遭遇しております。まぁク
ラスの設計がヘボなんですけど…。
こう言うメモリ回りの話しが詳しく書かれた物て何か無いのでしょうか?
0505デフォルトの名無しさん
2007/12/08(土) 18:57:17他から参照されてないオブジェクトはそのうちGCに消される。それだけ。
0506デフォルトの名無しさん
2007/12/08(土) 19:01:13到達不可能になると消える
それがGC
0507501
2007/12/08(土) 19:26:42ありがとうございました。
0508デフォルトの名無しさん
2007/12/08(土) 21:40:280509デフォルトの名無しさん
2007/12/08(土) 21:55:12どこからも参照されなくなったら勝手にfreeされるmallocだと思っとけ。
0510デフォルトの名無しさん
2007/12/08(土) 22:03:13この辺はパフォーマンスに大きく影響する部分ですよね
0511デフォルトの名無しさん
2007/12/08(土) 22:06:21構造体をうまく使えば
0512デフォルトの名無しさん
2007/12/08(土) 22:06:53無理やり起動することはできるがお勧めしない。
よって直接的な調整の余地はあまり無い。
大量にインスタンスを生成して参照しなくなれば頻度は上がるし、
あまりインスタンスを作成しないなら下がる。
細かい話はいろいろあるけど、まずはそれだけ。
0513デフォルトの名無しさん
2007/12/08(土) 22:09:10多くの場合は細かく気にする必要は無い。
インスタンスを無駄に生成しないようにある程度注意するくらい。
0514デフォルトの名無しさん
2007/12/08(土) 22:19:550515デフォルトの名無しさん
2007/12/08(土) 22:22:070516デフォルトの名無しさん
2007/12/08(土) 22:24:310517デフォルトの名無しさん
2007/12/08(土) 22:41:440518デフォルトの名無しさん
2007/12/08(土) 22:47:130519デフォルトの名無しさん
2007/12/09(日) 00:01:550520デフォルトの名無しさん
2007/12/09(日) 00:13:540521デフォルトの名無しさん
2007/12/09(日) 00:25:52>>516からの流れなのにMDXを持ち出すのはおかしいだろ
0522デフォルトの名無しさん
2007/12/09(日) 00:38:30modosu = "@\"" + "C:\\test\\" + modosu + ".txt\"";
this.textBox1.Text = modosu;
StreamReader sr = new StreamReader(modosu, Encoding.GetEncoding("Shift_JIS"));
パスを変数化して、StreamReaderの第一引数に入れているのですが、接続されません。
ちなみに変数"modosu"の中身を直接書き込むと接続されます。
@"C:\test\時間集計.txt"
何が原因なのでしょうか?
0523デフォルトの名無しさん
2007/12/09(日) 00:40:23解決しました~~;
0524デフォルトの名無しさん
2007/12/09(日) 00:41:460525デフォルトの名無しさん
2007/12/09(日) 00:42:400526デフォルトの名無しさん
2007/12/09(日) 00:44:14もうくるな
0527デフォルトの名無しさん
2007/12/09(日) 01:35:23あるクラスAを継承したクラスBがあるとして、
クラスBのインスタンスからはAのpublicメンバを使用できないようにすることは出来るでしょうか?
例えばFormクラスを継承したMyFormクラスを作ったが、Myformインスタンスでは勝手にクライアントサイズなどを変えてほしくない、などです。
0528デフォルトの名無しさん
2007/12/09(日) 01:49:12■ このスレッドは過去ログ倉庫に格納されています