Helaas moet ik regelmatig een vrij fors excel file (> 70Mb) ombouwen naar een x aantal textfiles (tabgescheiden) van +/- 1000 records per keer.
Nu wilde ik dit een beetje gaan automatiseren. Ik dacht, hee, dat doe ik wel even in asp, zeker ook omdat het op een webserver draait die geen asp.Net ondersteund. (Gekke probs met het framework
).
Anyway, ik heb dus een test file van 4 Mb.
Die wil ik inlezen, maar je raadt het al: de hele handel gaat onderuit.
Na het e.e.a. aan zoekwerk kwam ik op een mooi vergelijkend iets uit op 4Guys.
Daar stond het volgende (ongeveer) stukje:
Dat werkt supersnel (zoektijd van +/- 2 sec in een file van 4 Mb.)
Nu komt de kicker:
Ik moet dus van dat file wat bestaat uit +/- 10.000 "regels" per 1000 regels een textfile maken.
En ik krijg het maar niet voor elkaar om met bovenstaande code het WriteLine gedeelte er tussen te bedenken. Omdat je imho nog steeds naar het feit moet gaan om alles in te lezen.
Vervolgens een ander voorbeeld geprobeerd:
Dan wordt de hele handel alsnog compleet ingelezen en krijg ik een timeout.
De commented code heb ik zelf tussen gevoegd, en dat lever imho een probleem. (regels 11,12,13,14,15, stukej van 16 en regel 19).
Iemand die mij een duw in de goede richting kan geven?
Nu wilde ik dit een beetje gaan automatiseren. Ik dacht, hee, dat doe ik wel even in asp, zeker ook omdat het op een webserver draait die geen asp.Net ondersteund. (Gekke probs met het framework
Anyway, ik heb dus een test file van 4 Mb.
Die wil ik inlezen, maar je raadt het al: de hele handel gaat onderuit.
Na het e.e.a. aan zoekwerk kwam ik op een mooi vergelijkend iets uit op 4Guys.
Daar stond het volgende (ongeveer) stukje:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| const ForReading = 1 const TristateFalse = 0 dim strSearchThis dim objFS dim objFile dim objTS set objFS = Server.CreateObject("Scripting.FileSystemObject") set objFile = objFS.GetFile("C:\Inetpub\wwwroot\tests\CT3_1.txt") set objTS = objFile.OpenAsTextStream(ForReading, TristateFalse) strSearchThis = objTS.Read(objFile.Size) if instr(strSearchThis, "Egeraat") > 0 then Response.Write "Found it!" end if |
Dat werkt supersnel (zoektijd van +/- 2 sec in een file van 4 Mb.)
Nu komt de kicker:
Ik moet dus van dat file wat bestaat uit +/- 10.000 "regels" per 1000 regels een textfile maken.
En ik krijg het maar niet voor elkaar om met bovenstaande code het WriteLine gedeelte er tussen te bedenken. Omdat je imho nog steeds naar het feit moet gaan om alles in te lezen.
Vervolgens een ander voorbeeld geprobeerd:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| const ForReading = 1 dim strSearchThis redim arrSearchThis(-1) dim i dim objFS dim objTS set objFS = Server.CreateObject("Scripting.FileSystemObject") set objTS = objFS.OpenTextFile("C:\Inetpub\wwwroot\tests\CT3_1.txt", ForReading) i = 0 '=========code tussengevoegd==== 'filename = "1_ct3_00001_01001.dbf" 'dim fs,tfile 'set fs=Server.CreateObject("Scripting.FileSystemObject") 'set tfile=fs.CreateTextFile("c:\rob_jobfiles\"&filename) do until objTS.AtEndOfStream 'and i = 1001 redim preserve arrSearchThis(i) arrSearchThis(i) = objTS.ReadLine ' tfile.WriteLine(arrSearchThis(i)) i = i + 1 loop |
Dan wordt de hele handel alsnog compleet ingelezen en krijg ik een timeout.
De commented code heb ik zelf tussen gevoegd, en dat lever imho een probleem. (regels 11,12,13,14,15, stukej van 16 en regel 19).
Iemand die mij een duw in de goede richting kan geven?
Heart..pumps blood.Has nothing to do with emotion! Bored