ArmandRicard
wzl-lid
Sinds 14/4/2004
T: 2
R: 72
|
10/5/2005 -
13:44u
| Quote
|
Ik ben bezig met het schrijven van een klein tooltje om bat's en .sql te maken.
Nu moet ik soms sqlbestanden in een textbox laden die rond de 2mb groot zijn. Dan wordt de applicatie nogal vervelend traag .
Ik gebruik al een richtextbox, die de snelste blijkt te zijn. En ik laad eerst mijn file in een string en dan pas in de textbox...dat bespaart mij weeral wat tijd blijkbaar.
Maar meer dan 10 seconden moeten wachten eer een file ingeladen is duurt toch nog veel te lang, dus een speedup method is meer dan welkom.
Anybody been there, done that?
|
ArmandRicard
wzl-lid
Sinds 14/4/2004
T:2 -
R:72
|
10/5/2005 -
13:45u
| Quote
|
Oplossingen in vb.net weliswaar hé. Met iets anders kan ik nix aanvangen.
|
Quagmire
wzl-lid
Sinds 18/11/2003
T:62 -
R:1458
|
10/5/2005 -
14:07u
| Quote
|
Als het in java was zou ik kijken of ge wel een buffered reader gebruikt om uwe file in te lezen.....Aangezien .net principes wel meer dan een beetje overgenomen zijn van java.......bestaat er geen .net equivalent van een buffered reader, of stream?
|
ArmandRicard
wzl-lid
Sinds 14/4/2004
T:2 -
R:72
|
10/5/2005 -
14:13u
| Quote
|
in J# bestaat da wel precies maar ik zoek dus echt iets in vb.net hé...maar toch al bedankt voor de reply
|
Quagmire
wzl-lid
Sinds 18/11/2003
T:62 -
R:1458
|
10/5/2005 -
15:57u
| Quote
|
als da in J# bestaat moet da in vb.net ook bestaan hoor, alle .net talen gebruiken dezelfde base-class libraries......wat ge in een taal kunt gaat in de andere ook
Laatst aangepast door
Quagmire
op 10/05/2005 15:57:26u
(1x aangepast)
|
ArmandRicard
wzl-lid
Sinds 14/4/2004
T:2 -
R:72
|
10/5/2005 -
16:23u
| Quote
|
Dat klinkt inderdaad nog zo onozel niet, ik ga dat is uitzoeken
|
ArmandRicard
wzl-lid
Sinds 14/4/2004
T:2 -
R:72
|
11/5/2005 -
10:07u
| Quote
|
Public Sub OpenFile(ByVal path As String, ByVal tb As RichTextBox) tb.Text = "" Dim thetext As String
Dim fs As New FileStream(path, FileMode.Open) 'declaring a FileStream and creating a word document file named file with 'access mode of writing Dim s As New StreamReader(fs) 'creating a new StreamWriter and passing the filestream object fs as argument s.BaseStream.Seek(0, SeekOrigin.Begin)
While s.Peek <> -1 thetext += s.ReadLine() + vbCrLf End While s.Close() tb.Text = thetext 'closing the file
End Sub
Bovenstaande is dus de code die ik momenteel gebruik om een file in te lezen in een textbox. Zonder bufferedstream dus. Bufferedstream bestaat wel in VB.Net, alleen is het vinden van een voorbeeld die dit implementeert blijkbaar niet zo makkelijk.
Iemand die al eens een bufferedstream heeft geimplementeerd en weet wat er juist moet gebeuren om hem te benutten?
Thx
|
Phil
Uberhacker
Sinds 23/2/2003
T:10 -
R:484
|
11/5/2005 -
12:49u
| Quote
|
Ben je zeker dat het niet de omzetting ascii/unicode -> rtf is die je vertraging veroorzaakt ?? Het kan nooit dat een 2mb file 10 seconden nodig heeft om in te laden, zelfs niet in vb. Profile je code eerst eens.
Edit: ik zie dat je daar een String concatinatie doet (+= .. + ..), dit zorgt er (althans in Java) voor dat je voor elke regel een nieuw object moet instantieren - probeer eens te kijken of een StringBuffer (of gelijkend) is. Dit kan een gigantische versnelling betekenen.
Laatst aangepast door
Phil
op 11/05/2005 12:56:26u
(1x aangepast)
|
ArmandRicard
wzl-lid
Sinds 14/4/2004
T:2 -
R:72
|
11/5/2005 -
13:30u
| Quote
|
yeeeeeps, yeeps yeeps that's it, met de stringbuilder uit de text class werkt het Thx guys!
|
Phil
Uberhacker
Sinds 23/2/2003
T:10 -
R:484
|
11/5/2005 -
16:23u
| Quote
|
np, glad to have been of any assistance.
|