Har denna kod: P, Hehe jo dim inne har du rätt i, koden i övrigt, nja. 1. Menar du att vissa rader i din Reader är tomma? Dvs. = "". 1. Readern innehåller inte alltid någonting, då tillskillnad från om man tex skulle läsa en text-fil. P, Hmm probelmet löste sig...streamreader läser hela tiden.
<code>
while true
if blala = vlala then
' do things
end if
dim s as string = sReader.Readline()
if s <> "" then
' do things
end if
end while
</code>
Denna while vill jag ska rulla runt men när den kommer ner till dim s as string, så stannar den där tills sReader innehåller något värde. Detta vill jag inte utan jag vill att den ska rulla så att jag kan få med mitt första villkor. Vad göra?Sv: streamreader läser hela tiden.
Vi börjar med att säga att det är inte då snyggt att du skapar din variabel <b>s</b> varje gång du går ett varv i loopen. Om du inte vill anropa <b>ReadLine</b> när din stream är tom, så kan du använda <b>Peek</b> som returnerar -1 om streamen inte innehåller något att läsa
<code>
Dim s As String
While True
If blala = vlala Then
' do things
End If
If Not sReader.Peek() = -1 Then
s = sReader.Readline()
If s <> "" Then
' do things
End If
End If
End While
</code>
//AndreasSv: streamreader läser hela tiden.
Testat runt lite och det fungerar inte rikigt, kör jag:
<code>
while true
console.write("Peek: " + sReader.Peek().Tostring()) ' Ger alltid värdet -1, även fast min reader innehåller data, lägger jag till.
end while
----------------
while true
console.write("sReader.Readline()")
console.write("Peek: " + sReader.Peek().Tostring())
end while
' Ger annat värde, 58.
</code>Sv: streamreader läser hela tiden.
2. Vad innehåller Readern? Om du gör en .Readline kanske du får med en radbrytning vilket går tillbaka till fråga 1.
3. While True innebär en infinite loop. stoppar aldrig. Kör While sReader.Read istället.
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: streamreader läser hela tiden.
2. Se fråga 1
3. Hmm spelar någon större roll?
Alltså .Peek() ger alltid värdet -1 om jag låter den stå och gå, även fast sReader.Readline() innehåller data.Sv: streamreader läser hela tiden.
Skapa ett fungerande exempel som illustrerar problemet du upplever som vi kan testa. Med fungerande menar jag att vi i princip skall kunna klippa in det från forumet i ett nytt projekt och köra det. Måste säga att din ursprungsbeskrivning av problemet inte förklarar det så bra =/
//AndreasSv: streamreader läser hela tiden.
While True och While Reader.Read gav olika värden på .Peek()