Intenta poniendo el ReadLine por fuera del While, en el While utilizando InlineAssignHelper, tal vez te ayude.
Código VB.NET:
Ver originaltexto = leer.ReadLine()
While (InlineAssignHelper( texto, leer.ReadLine())IsNot Nothing
End While
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function
Tambien checate que los indices que estas manejando sean correctos, tal vez la ultima linea esta diferente.