C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

並び替えについて


(過去ログ 3 を表示中)

[トピック内 16 記事 (1 - 16 表示)]  << 0 >>

■3133 / inTopicNo.1)  並び替えについて
  
□投稿者/ KEN 二等兵(1回)-(2006/04/18(Tue) 11:41:28)

分類:[VB.NET] 


分類:[VB.NET] 

簡単なことで申し訳ありませんが
VB.NETでフォルダの中身のファイルをアレイリストに入れてその中のファイルを
更新日時でsortしたいんですがわかりません。。。
できたら
なるべく早くおねがいいたします。。。
因みにファイルはすでにアレイリストに入れてあります
あとは並び替えだけ・・・・

0
引用返信 編集キー/
■3134 / inTopicNo.2)  Re[1]: 並び替えについて
□投稿者/ まどか 准尉(108回)-(2006/04/18(Tue) 11:51:10)

分類:[VB.NET] 

> VB.NETでフォルダの中身のファイルをアレイリストに入れてその中のファイルを
> 更新日時でsortしたいんですがわかりません。。。

ArrayListではなくSortedListを使うとか。

0
引用返信 編集キー/
■3135 / inTopicNo.3)  Re[2]: 並び替えについて
□投稿者/ KEN 二等兵(3回)-(2006/04/18(Tue) 11:55:01)

分類:[VB.NET] 


> ArrayListではなくSortedListを使うとか。
俺は今まであまりちゃんと勉強してなくて
なのに就職してプログラマになっちゃって
関数とかあまりよくわかってないので。。
できたらもう少し詳しく教えていただけたらいいなぁ・・・


0
引用返信 編集キー/
■3136 / inTopicNo.4)  Re[3]: 並び替えについて
□投稿者/ Blue 二等兵(18回)-(2006/04/18(Tue) 12:00:10)

分類:[VB.NET] 

http://santamartadotnet.hp.infoseek.co.jp/documents/vbdotnet/comparison.html
の 3.クラスにIComparableを実装する を参考にしてみてはどうでしょうか?

0
引用返信 編集キー/
■3137 / inTopicNo.5)  Re[4]: 並び替えについて
□投稿者/ KEN 二等兵(4回)-(2006/04/18(Tue) 12:08:32)

分類:[VB.NET] 

fslog = Directory.GetFiles(log, "*.log")
logfiles.AddRange(fslog)
logfiles.Sort()
      ↑このカッコの中がわかればできるのかな?
更新日時で並び替え・・・

0
引用返信 編集キー/
■3138 / inTopicNo.6)  Re[3]: 並び替えについて
□投稿者/ まどか 准尉(109回)-(2006/04/18(Tue) 13:58:45)

分類:[VB.NET] 

System.Collections.SortedListクラス
キーと値をペアで管理するリスト
でもって、キーは勝手に並べ替えられる。
なので、キーとして更新日時文字列、値はファイル名文字列にすればよいかと。
ヘルプをSortedListで検索してみましょう。例も載っています。

0
引用返信 編集キー/
■3139 / inTopicNo.7)  Re[4]: 並び替えについて
□投稿者/ まどか 准尉(110回)-(2006/04/18(Tue) 14:43:32)

分類:[VB.NET] 

すいません。。。
SortedListはキー重複不可でした。m(_ _)m

というわけで
Blueさんご提示のリンクが参考になるでしょう。

0
引用返信 編集キー/
■3140 / inTopicNo.8)  Re[5]: 並び替えについて
□投稿者/ KEN 二等兵(5回)-(2006/04/18(Tue) 15:03:31)

分類:[VB.NET] 

とりあえず今自分でいろいろやってためして
ソートかけれたんですけど。。。
降順になってるんですけど
それを昇順にする方法がわかんないんです。。。
いったんソース書きますね
cnt = logfiles.Count()
For i = 0 To cnt - 1
'更新日時の取得(DateTime値を返す)
Console.WriteLine(File.GetLastWriteTime(logfiles(i)))
test.Add(File.GetLastWriteTime(logfiles(i)) & logfiles(i))
Next
test.sort()
にしたら
ファイルパスのあと更新日付がきてるんですが
これを昇順にしたいんです。。
それができれば俺がしたいことが終わるのです
あと少し・・・
あと少し・・・
がんばるべ・・・

0
引用返信 編集キー/
■3141 / inTopicNo.9)  Re[6]: 並び替えについて
□投稿者/ KEN 二等兵(7回)-(2006/04/18(Tue) 15:34:11)

分類:[VB.NET] 

まちがえた新しいものから古い順表示するんだから
降順だ
だれかHELP ME

0
引用返信 編集キー/
■3142 / inTopicNo.10)  Re[7]: 並び替えについて
□投稿者/ しゃら 二等兵(1回)-(2006/04/18(Tue) 15:40:41)

分類:[VB.NET] 

あんまりみてないけど・・・

test.sort()
test2 = Array.Reverse(test)でいけるかな?

0
引用返信 編集キー/
■3143 / inTopicNo.11)  Re[8]: 並び替えについて
□投稿者/ KEN 二等兵(8回)-(2006/04/18(Tue) 15:55:24)

分類:[VB.NET] 

test.Sort()
test.Reverse()
でできました
いろいろありがとうございました


解決済み
引用返信 編集キー/
■3144 / inTopicNo.12)  Re[9]: 並び替えについて
□投稿者/ まどか 准尉(111回)-(2006/04/18(Tue) 16:15:31)

分類:[VB.NET] 

遅かったか。。。

一応、更新日時が同じだったらファイル名の昇順にする例。動作未確認(汗


解決済み
引用返信 編集キー/
■3145 / inTopicNo.13)  Re[10]: 並び替えについて
□投稿者/ KEN 二等兵(9回)-(2006/04/18(Tue) 16:38:21)

分類:[VB.NET] 

また新たな問題発掘w
降順して
新しいの5つだけのこして後は削除なんだけど
さっきの書いたやつだと
更新日付 パス名
ってなってるから
更新日付だけを消したい場合って
arraylistの中を1行づつ取り出して頭から19文字(YYYY/MM/DD_HH:MM:SS)を削除すればいいだけだと思うんだけど
なんか簡単な方法ってないでしょうか?

あとまどかさん俺にメールくださいw
プログラムとか教えてほしかったりするので

0
引用返信 編集キー/
■3146 / inTopicNo.14)  Re[11]: 並び替えについて
□投稿者/ まどか 准尉(112回)-(2006/04/18(Tue) 17:03:54)

分類:[VB.NET] 

> 更新日付だけを消したい場合って
> arraylistの中を1行づつ取り出して頭から19文字(YYYY/MM/DD_HH:MM:SS)を削除すればいいだけだと思うんだけど

19文字っていう普遍の規則があれば、
CType(test.Item(Index), String).SubString(19)
でよいでしょう。

> あとまどかさん俺にメールくださいw
> プログラムとか教えてほしかったりするので

情報を共有する掲示板でのやりとりですので、ここでおこなってください。
私の発言や提示したものに関してはとことんお付き合いいたします。

また、「習得」を目的としているならそれこそ身近にいる先輩などを有効利用しましょう。

#先の添付ソースの動作確認をして正常に動きました。

0
引用返信 編集キー/
■3148 / inTopicNo.15)  Re[12]: 並び替えについて
□投稿者/ KEN 二等兵(10回)-(2006/04/18(Tue) 18:10:50)

分類:[VB.NET] 


> 19文字っていう普遍の規則があれば、
> CType(test.Item(Index), String).SubString(19)
> でよいでしょう。

↑この処理はMID関数だったかな?それと一緒な動きをしているって感じでしょうか
とりあえずさっき自分であ〜だこ〜だしてたら動いたんですがw

For i = 5 To cnt - 1
dellog = logname(i)
dellog = Mid(dellog, 20, dellog.Length)
Console.WriteLine(dellog)
File.Delete(dellog)
Next

こんな感じで作ったんですが
なんかもっといい書き方あったら教えてくださいw

0
引用返信 編集キー/
■3149 / inTopicNo.16)  Re[13]: 並び替えについて
□投稿者/ まどか 准尉(113回)-(2006/04/18(Tue) 23:27:08)

分類:[VB.NET] 

> dellog = Mid(dellog, 20, dellog.Length)

Mid(dellog, 20)のように「以降すべて」の意味で省略するか
Mid(dellog, 20, dellog.Length - 19)としましょう。

>>CType(test.Item(Index), String).SubString(19)
>
> ↑この処理はMID関数だったかな?それと一緒な動きをしているって感じでしょうか

そのとおりです。
#ヘルプは見てますか?


> なんかもっといい書き方あったら教えてくださいw

ループの仕方などは特に意見はありません。
あえて指摘するなら、
dellogを上書きするのではなく、ファイル名専用の変数に格納しましょう。可読性や保守性が向上します。
Dim FileName As String = logname(i).SubString(19)
File.Delete(FileName)

i がForループでしか使わないなら
For i As Integer = 5 To cnt - 1 という書き方もよく使うので覚えてください。
この外でのDim宣言は不要になります。

Mid関数はMicrosoftVisualBasic名前空間という旧VBとの互換性を目的としたライブラリですので
なるべく他の純正クラスを使うようにするとよいです。今回の場合、String.SubString。

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -