Чтение из текстового файла

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

twinzco
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 22.05.2006 (Пн) 23:36

Чтение из текстового файла

Сообщение twinzco » 23.05.2006 (Вт) 0:00

Есть файл, примерно следующего формата:
TEST123
10 10
234.893 365.233
342.543 5765.1243
12.213134 544.24234 454.4354354 23.544323 0.00000
544.24234 454.4354354 23.544323 0.00000 23432.4323
....
и т.д.
При чтении из VB 6.0 ни каких проблем не возникало.
Пытаюсь прочесть из VB.NET, ничего не получается, подскажите плиз в чем грабли?
Это код в VB 6.0:
Код: Выделить всё
Dim nx As Integer
Dim ny As Integer
Dim xmin As Double
Dim xmax As Double
Dim ymin As Double
Dim ymax As Double
Dim zmin As Double
Dim zmax As Double
Dim data() As Double
Dim s As String
dlg.ShowOpen
Open dlg.FileName For Input As #1
    Input #1, s
    Input #1, ny
    Input #1, nx
    Input #1, xmin
    Input #1, xmax
    Input #1, ymin
    Input #1, ymax
    Input #1, zmin
    Input #1, zmax
    ReDim data(nx, ny)
    For i = 1 To nx
        For j = 1 To ny
            Input #1, data(i, j)
        Next j
    Next i
Close #1


Переведенный код работет в принципе в VB.NET , но при переходе к следующей строке по считываему файлу, вываливается ошибка о не возможности конвертации "" в double. Какие есть варианты решения, и какие аналоги в VB.NET лучше использовать, file.read не помогает.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.05.2006 (Вт) 7:34

На какой строке кода происходит ошибка? Это во-первых, а во-вторых, наверное стоит читать содержимое такого файла построчно, а уже после этого производить необходимые преобразования.
Весь мир матрица, а мы в нем потоки байтов!

twinzco
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 22.05.2006 (Пн) 23:36

Сообщение twinzco » 24.05.2006 (Ср) 12:38

Ошибка вылетает после считывания первой строки, там не реальное значение, а "" - пустота. Видимо реализация этих функций различна в VB6 и VB.NET. Построчно может не покатить, потому что реально размеры матрицы данных могут достигать размеров до 30000 значений.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.05.2006 (Ср) 12:58

А файл является именно таким по условию вопросу? И возможности изначально записывать данные по другому нет? Если так, то, как это не прискорбно, придется мудрить с построковым считыванием или отлавливать ошибки. Например, если первая строк вместо реальных данных может содержать пустую строку и это не является ошибкой, то надо этот момент предусмотреть, отловить ошибку и читать дальше
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 96

    TopList