線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3930
推到 Plurk!
推到 Facebook!

關於findfirst 函式

答題得分者是:jow
cat200188
中階會員


發表:37
回覆:78
積分:68
註冊:2005-01-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-19 14:43:43 IP:220.130.xxx.xxx 訂閱
關於findfirst 函式,請問能控制他讀檔時用隨機方式讀取嗎?例如資料夾內有檔案a1.bmp,a2.bmp,a3,bmp,b1.bmp,b2.bmp,b3.bmp 我不要照順序讀出,我希望讀a1.bmp,b1.bmp這樣,請問能否達成,謝謝
------
.......
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-19 15:20:44 IP:210.66.xxx.xxx 訂閱
所有檔案名稱都抓到後, 再來依據你要的
存取邏輯來排順序....

===================引 用 cat200188 文 章===================
關於findfirst 函式,請問能控制他讀檔時用隨機方式讀取嗎?例如資料夾內有檔案a1.bmp,a2.bmp,a3,bmp,b1.bmp,b2.bmp,b3.bmp 我不要照順序讀出,我希望讀a1.bmp,b1.bmp這樣,請問能否達成,謝謝
cat200188
中階會員


發表:37
回覆:78
積分:68
註冊:2005-01-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-19 15:37:19 IP:220.130.xxx.xxx 訂閱
喔,這個方法我也想過,但想偷懶,有直接用findfirst的隨機讀檔功能嗎
------
.......
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-19 15:50:23 IP:210.66.xxx.xxx 訂閱
參考這一篇, 雖然是用Delphi寫的, 可是在FindFirst()的用法上類似.

建議你把所有檔名抓到一個 TStringList 中, 再來隨機取得檔名...

例如: Index = ramdom(List->Count); //0~List->Count-1
List->Strings[Index] ----> 取得檔名


個人見解, 僅供參考........

===================引 用 cat200188 文 章===================
喔,這個方法我也想過,但想偷懶,有直接用findfirst的隨機讀檔功能嗎
cat200188
中階會員


發表:37
回覆:78
積分:68
註冊:2005-01-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-11-19 16:25:40 IP:220.130.xxx.xxx 訂閱
再請問用例如: Index = ramdom(List->Count);  //0~List->Count-1
List->Strings[Index] ----> 取得檔名
如果檔案有15筆,我用亂數產生15次,如何確保抓取的檔案不會重覆,如 List->Strings[13]跑過一次,下次我不會再讓它跑出來
------
.......
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-11-19 16:33:51 IP:210.66.xxx.xxx 訂閱
取得全部檔名後, 這是所需資料處理的結果, 例如 List.
在操作部分則可以自List 複製一份資料來用

(手寫Delphi code)
var
L: TStringList;
Index: Integer;
FileName: string;

L := TStringList.Create;
try
L.Text = List.Text;
while L.Count > 0 do
begin
Index := Random(L.Count);
FileName := L[Index];
//處理檔案
L.Delete(Index);
end;
finally
FreeAndNil(L);
end;



===================引 用 cat200188 文 章===================
再請問用例如: Index = ramdom(List->Count); //0~List->Count-1
List->Strings[Index] ----> 取得檔名
如果檔案有15筆,我用亂數產生15次,如何確保抓取的檔案不會重覆,如 List->Strings[13]跑過一次,下次我不會再讓它跑出來
系統時間:2024-03-29 17:37:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!