Строка Input # оператор, три строки одинаковые.Будет ли она перезаписывать переменную каждый раз? - PullRequest
3 голосов
/ 21 ноября 2011

В программе, которую я мигрирую с vb6 на VB.net, есть три одинаковых оператора Line Input #:

Line Input #9, dummy
Line Input #9, dummy
Line Input #9, dummy

Будет ли это просто перезаписывать переменную каждый раз или делать что-то глупоекак добавить ввод к пустышке каждый раз?

Мой второй вопрос, в чем разница между Input # и Line Input #?Я использовал:

foo = bar.readline 

для ввода # ... и теперь я боюсь, что я все сделал неправильно и должен был использовать:

foo = bar.Read 

или что-то всеочень признателен за помощь
Спасибо, ребята!
Ник

Ответы [ 3 ]

4 голосов
/ 21 ноября 2011

Удивительно, но языковая ссылка по-прежнему доступна. Вход # , Линейный вход # . Вы правы, что они не одинаковы.

На ваш первый вопрос, она перезапишет переменную, так что это просто способ пропустить 2 строки и прочитать третью строку.


Возможно, вам лучше использовать средства VB Runtime для чтения файлов, созданных VB 6, а не стиль ".NET" работы с файловой системой, поскольку я думаю, что было бы довольно трудно воспроизвести поведение Input # с использованием Read. Вместо этого используйте FileSystem.Input.

3 голосов
/ 21 ноября 2011

Оператор Line Input читает весь текст во входном файле вплоть до следующей последовательности CR или CR-LF и помещает его в переменную dummy.Таким образом, эти операторы, как вы предполагаете, будут перезаписывать переменную dummy каждый раз.

Input читает входные данные до следующей последовательности CR, CR-LF или разделяющую запятую и сохраняет данные, считанные вdummy.

Я склонен считать, что вы правы, вам действительно следует использовать bar.Read для Input # и bar.ReadLine для Input Line.

См. Input # и Line Input # для более.

2 голосов
/ 21 ноября 2011

Команда Line Input # не делает ничего особенного, например, добавление к переменной. Значение просто присваивается переменной, поэтому если у вас есть три строки, подобные этим, она заменит первые два значения.

Команда Read # ожидает специальный формат данных, поэтому ReadLine не будет работать в качестве замены. Ссылка на команду Write # содержит подробные сведения о том, как выглядят данные, ожидаемые командой Read #.

...