@דוד ל.ט.
(בקשר לקריאה, עדיין עדיף לקרוא קובץ רצוף רצוף בלי דילוגים, זה המצב. ממילא גם לשיטתך, צור שני קבצים. זכור גם שהקריאה עצמה לא היוותה בעיה מבחינת המהירות).
באמת בדקתי וקריאה רצופה מהירה פי מאה מקריאה עם העברת מצביע כל פעם!
Dim MAX As Integer = 2000000
Dim SW As New Stopwatch
Dim ARR(MAX) As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'בניית הקובץ
SW.Reset()
SW.Start()
Dim BW As New BinaryWriter(File.Open("C:\SS.TXT", FileMode.Create), Encoding.UTF8)
For I = 2 To MAX + 2
BW.Write(CInt(I))
Next
BW.Close()
SW.Stop()
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
SW.Reset()
SW.Start()
Dim BR As New BinaryReader(File.OpenRead("C:\SS.TXT"), Encoding.UTF8)
Dim num As Integer = MAX
'קריאה רצופה
For I = 0 To MAX
'קריאה עם דילוג כל פעם
'For I = MAX * 4 To 0 Step -4
' BR.BaseStream.Position = I
ARR(num) = BR.ReadInt32
num -= 1
Next
BR.Close()
SW.Stop()
End Sub
פורסם במקור בפורום CODE613 ב04/07/2013 21:46 (+03:00)