Показать сообщение отдельно
Старый 05.11.2010, 22:51   #6
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Ответ: случайная выборка файла

Graphics 800,600,0,2
SetBuffer BackBuffer ()


Global sss=WriteFile ("spisok.txt")

oldTime=MilliSecs()

ScanDir("D:\tex\")
CloseFile sss

newTime=MilliSecs()

Print (Newtime-oldtime)/1000.0
WaitKey()
End


Function ScanDir(path$)
dir = ReadDir(path$)
Repeat
file$ = NextFile(dir)
If file$ = "" Then Exit
If file$ <> "." And file$ <> ".." Then
Select FileType(path$ + file$)
Case 1
WriteLine sss,path$ + file$
Case 2
ScanDir(path$ + file$ + "\")
End Select
EndIf
Forever
CloseDir dir
End Function



в общем я сделал так, результаты меня порадовали - 28 гигов за 7 секунд (хотя если написать библу на пурике, я думаю будет быстрее) и размер файла со списком получился почти 12 мегов.
осталась проблема, как сделать случайное чтение из списка не загружая весь файл в память?
__________________
Per Aspera Ad Astra...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pepel (18.11.2010)