Posto vidim da neznas rad sa fajlovima kod binarnog pristupa objasnicu ti gdje grijesis.
1. Kada otvaras fajl naredbom (Open "C:\test.txt" For Binary As #1) argument (Len = neki_broj)
se zanemaruje odnosno duzina zapisa ne moze da se odredi pri binarnom pristupu
nekoj datoteci. Duzinu procitanog zapisa odredjujes formatiranjem Varijable u
koju ocitavas zapis odnosno odredjivanjem njene duzine. Recimo mozes ovako:
"ocitanoizfajla = String(20, " ")"
2. Pri otvaranju fajla nije sigurno koristiti broj kao pokazivac na fajl (#1) jer
nemora da znaci da je (#1) slobodan handle, odnosno bolje je napraviti varijablu, recimo
"iFile" cjelobrojnog tipa i onda komandom (iFile = FreeFile) dobijas prvi
slobodni handle za file koji ces da otvaras. Posle u naredbama Open, Get, Input...
prosledjujes Varijablu "iFile" umjesto direktnog broja(#1).
3. Kod zatvaranja naredbom "Close" treba da se naglasi koji fajl zatvaras odnosno
treba napisati (Close #1) ili jos bolje (close #iFile) ili mozes da koristis komandu
"Reset" koja zatvara sve fjlove otvorene naredbom "Open".
S onom for petljom si bezveze zakomplikovao kod, evo pojednostavljeno kako mozes
pravilno i mnogo brze da uradis to sto ti treba, a i izbacen je nepotrbni
kod koji si postovao u prethodnoj poruci:
Code:
Dim iFile As Long
Dim sOut As String
Dim iLen As Long
iFile = FreeFile
Open App.Path & "\ilustracije.txt" For Binary As #iFile
iLen = LOF(iFile)
sOut = String(iLen, " ")
Get #iFile, 1, sOut
Close iFile
Text1.Text = sOut
sOut = ""
iFile = FreeFile
Open App.Path & "\ilustracije.txt" For Input As #iFile
Do Until EOF(iFile)
Line Input #iFile, sOut
List1.AddItem sOut
Loop
Close iFile
Label1.Caption = Label1.Caption & List1.ListCount
A sto se tice komande "Line Input", nije ona spora odnosno, ne usporava ona
toliko program, nego samo upisivanje u listbox odnosno njegova komanda
"List1.AddItem" koja se nalazi u petlji koja se izvrsava nekoliko hiljada puta
oduzima najvise procesorskog vremena. A sto se tice brzine: Petlje "Do .... Loop"
su gotovo uvijek brze od petlje (For ... Next).
Ero S Onoga Sveta