Toon posts:

Stringreader equivalent van Streamreader.EndOfStream

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
De stringreader class kent volgens mij geen equivalent van StreamReader.EndOfStream. Een StreamReader voorbeeld:

Visual Basic .NET:
1
2
3
4
5
6
Dim sr As StreamReader = New StreamReader(FilePath)
Dim line As String
Do
            line = sr.ReadLine()
            FunctieX()
Loop Until sr.EndOfStream = True


Om hetzelfde te bereiken met een StringReader, heb ik het volgende voorbeeld geschreven:

Visual Basic .NET:
1
2
3
4
5
6
7
8
Dim sr As StringReader = New StringReader(Input)
Dim line As String

line = sr.ReadLine()
        Do          
            FunctieX()
            line = sr.ReadLine()
        Loop Until line Is Nothing


Een nieuwe regel wordt aan het einde van de loop gelezen zodat FunctieX() niet nog wordt aangeroepen als de regel al leeg is. In dit geval is het wel nodig dat de eerste regel voor de Do/Loop wordt ingelezen. Ik zou echter graag de stringreader zo willen schrijven dat het een normale opbouw heeft zoals het StreamReader voorbeeld. Daarvoor moet ik echter wel een equivalent van sr.EndOfStream hebben. Kan iemand mij daarmee helpen?

Zoals ik het graag zou willen:

Visual Basic .NET:
1
2
3
4
5
6
Dim sr As StringReader = New StringReader(Input)
Dim line As String
Do
            line = sr.ReadLine()
            FunctieX()
Loop Until XYZ

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 01-07-2023
Is de Peek() functie misschien iets voor je?

"Returns the next available character, but does not consume it"

Dus bijvoorbeeld zoiets?:

Visual Basic .NET:
1
2
3
4
Do 
            line = sr.ReadLine() 
            FunctieX() 
Loop Until sr.Peek = -1

[ Voor 39% gewijzigd door Serpie op 03-05-2007 13:14 ]


Verwijderd

Topicstarter
Bedankt, dat werkt perfect. Ik had deze method niet in overweging genomen omdat het betrekking heeft op enkel één letter. Maar waar geen letter is, is natuurlijk ook geen regel.

Is er overigens een handige manier om te zien welk .NET framework je applicatie minimaal vereist. In mijn applicatie gebruik ik classes als de streamreader, stringreader, sqlconnection en sqlcommand. MSDN geeft aan dat al deze classes worden ondersteund in de volgende versies van het .NET framework.

code:
1
Supported in: 3.0, 2.0, 1.1, 1.0


Betekent dit automatisch dat enkel versie 1.0 van het framework noodzakelijk is om mijn applicatie te gebruiken?

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 01-07-2023
Verwijderd schreef op donderdag 03 mei 2007 @ 17:37:
code:
1
Supported in: 3.0, 2.0, 1.1, 1.0


Betekent dit automatisch dat enkel versie 1.0 van het framework noodzakelijk is om mijn applicatie te gebruiken?
Ten eerste afhankelijk van de omgeving waarin je programmeert, vs2002 is 1.0 volgens mij, vs2003 1.1 en vs2005 en de express editions zijn het 2.0 framework.

Als je voor het 2.0 framework gecompileerd hebt is het niet mogelijk om de applicatie zonder die versie te draaien. Omgekeerd kan eventueel wel, als je voor 1.1 gecompileerd hebt zou het moeten werken onder het 2.0 framework.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 01:51
Met Visual Studio kan je ook voor 1.1 ontwikkelen mbv MSBee.

Roomba E5 te koop


Verwijderd

Ik gebruik nu dan visual C# express (codename "orcas") en hier kan je gewoon aangeven wat je 'target framework' is dmv rechtermuisknop op project->Properties->Application en dan in het veld target framework het gewenste framework selecteren.

Ik weet niet of het in alle versies zo werkt, alleen dat het hierop wel werkt en VS.NET 2002 niet. Die werkte overigens op .NET framework 1.0.3705.
Pagina: 1