Entwickler-Ecke
IO, XML und Registry - frage zu StreamReader.DiscardBufferedData() ?
Nuckey - Sa 06.08.11 15:01
Titel: frage zu StreamReader.DiscardBufferedData() ?
folgende Problehm/frage :
per streamreader öffne ich eine datei,lese denn zeilen weise per readline().
Quelltext
1:
| string parse = sr.readline() |
parse wird dann auf bestimmte schlüsselwörter untersucht um dann bestimmte funktionen aufzurufen,wobei der funktion die ref. des sreamreadersobject übergebn wird.
Quelltext
1: 2:
| if(parse.IndexOf(" dingens ") >= 0) function(sr); |
in dieser unterfunktion wird dann die datei genauer "geparst",hier kommt die grundfarge.
wenn der stream an die unterfunktion übergeben wird ,brauche ich aber dehn gerade ausgelesenen string ,da aber bei der nächsten readline anweisung ,die nächste zeile ausgelesen wird aber ich die vorhergehende brauche,bin ich auf zwei möglichkeiten gekommen.
1. ich speichere dehn vorhergehenden string in einem stringbuilder zwischen
2. ich setze dehn stream per Discardbuffer und position = 0 auf anfang des streams
jetz meine eigentliche frage wie stark beansprucht discardbuffer dehn speicher ?
mfg Nuckey
Kha - Sa 06.08.11 15:20
Ich sehe das Problem nicht - übergib doch einfach zusätzlich parse.
PS: bittebittebitte, den ohne h!
Nuckey - Sa 06.08.11 15:43
hio kha
ich üb schon mal für die nächste rechtschreibreform ;)
es eigentlich kein problem an sich,eigentlich geht es mir um die funktion discardbuffer,wie es mit resourcen umgeht,sprich wenn ich dehn stream zurücksetze auf anfang,in wie weit geht es zu lasten des speichers ?
naja so in der richtung
mfg nuckey
Kha - Sa 06.08.11 16:04
Nuckey hat folgendes geschrieben : |
ich üb schon mal für die nächste rechtschreibreform ;) |
Solange dir bewusst ist, dass schlechte Form nicht unbedingt die Antwortbereitschaft erhöht...
Ich weiß nicht, wo du da eine besondere Beanspruchung des Speichers vermutest. Der Puffer hat ja eine (kleine) konstante Größe, die dir egal sein dürfte. Aber natürlich wird beim nächsten ReadLine dann eine neue String-Instanz erzeugt, obwohl es schon einen String für die erste Zeile gibt.
Nuckey - Sa 06.08.11 16:17
habe es mir mal mit ILSpy angeschaut ,intern wird mit dehn StringBuilder gearbeitet und discardbuffer ,da werden nur einige variablen auf 0 gesetzt,also vom ersten blick her dürfte das einsetzen von discardbuffer keine "schwerwiegenden" speichereinbrüche nach sich ziehn .
dank die erst mal kha
mfg nuckey
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!