Показать полную графическую версию : [решено] vb.net чтение конкретной строки файла
Доброго времени суток...
вопрос по vb.net
среда Visual Studio 2010
подскажите как произвести чтение конкретной строки, например:
файл D:\text.txt
в нем 5 строк
мне необходимо получить 3-ю строку в переменную "x"
в деле vb.NET новичек... (хорошо программирую на VBA, кое-что на VB6 писал, но тут-же все ваШпе по другому)
пробовал и через System.IO.StreamReader
пробовал My.Computer.FileSystem.OpenTextFileReader
и там и там, все то-же свойство ReadLine...
пока я додумался использовав его в цикле выдернуть конкретную строку, хотя практически уверен, что есть способ
обратиться конкретной строке.
Подскажите плз...
и еще если кто уже успеть в Visual Studio 2010...
как вызвать на отладку конкретную процедуру модуля, а не весь его сразу
а то у меня Module1
в нем
sub main()
sub first()
sub second()
устанавливаю курсор на sub first запускаю отладку
прет с sub main.
Delirium
17-08-2010, 00:54
и там и там, все то-же свойство ReadLine... »
пока я додумался использовав его в цикле выдернуть конкретную строку »
Именно так и надо. Вы же скачиваете файл в массив, и у него нет понятия строки, как мы это видим. Можно отслеживать по переносу каретки, но если в файле есть пустые строки, то будет некорректно считывать. Так что "додуманный" способ самый простой.
станавливаю курсор на sub first запускаю отладку »
Отладку через F10 или F5 ?
Visual studio 2010
согласно "Маркса" отладка производится "F8" потом построчно "shift+F8" ...
Или нет ? :o
сча вот попробовал нажать F10... и
Title "Загрузка общедоступных символов" Prompt "System.dll"
лицезрею сие уже мин. 15
это что за "выгибон"
проект, 1 модуль, в нем...
Module Module1
Sub Main ()
End Sub
__________________________
Sub First ()
MsgBox("x")
End Sub
End Module
внимание вопрос:
как запустить для отладки только Sub First
как бы я не пробовал все начинается с Sub Main
а как же дальше, когда у меня будет сотня модулей и по 50 процедур в каждой?!
мне чтоб одну процедуру ее отладить нужно включить ее в основной алгоритм
и гнать всю программу до ее выполнения что-ли?
не может быть...
Delirium
18-08-2010, 05:20
Я ставлю точку останова по F9 на нужную строку. Жму F5 и дохожу в программе до точки останова. Далее по F10 Идет построчное перемещение по коду, если жать F11 - будет происходить переход в функции, если они есть в строке текущей.
т.е все равно мне необходимо прогнать программу до вхождения необходимой мне процедуры или функции
бред...
я разочарован в VS в принципе...
вот например... логика :
тра-та-та, тра-та-та
собираем переменную и неких динамических данных
анализ переменной по значению...
условие If проверка Then модуль такой-то, процедура такая-то
Else модуль такой-то, процедура такая-то
И как мне отлаживать вот эти конечные процедуры на ветках логического ЕСЛИ...
предопределять переменную?
А если таких конструкций одна в одной штук 5...
наверное все таки есть какая-то возможность... ну или VS 2010 полное "Г"
Delirium
19-08-2010, 09:22
т.е все равно мне необходимо прогнать программу до вхождения необходимой мне процедуры или функции »
Вы или не понимаете, о чем говорите, или не понимаете принципов программирования. Ставьте точку останова куда вам надо, жмите F5 и вперед. Пошаговое выполнение при попадании на точку останова идет через F10.
вот банальный пример:
тип проекта "консольное приложение"
кол-во модулей: 1
кол-во процедур: 4
Module1
Sub Main()
Dim Fact As String
'некие инструкции... которые генерируют Fact, в зависимости от множества факторов.
If fact <> "" then
FIRST
Else
SECOND
End if
End sub
Sub FIRST()
Msgbox("логическая ветка True")
End sub
Sub SECOND()
Msgbox("логическая ветка False")
End Sub
Внимание вопрос:
как мне заставить выполнится только Sub SECOND() или Sub FIRST()... мне не нужно чтобы Sub Main() выполнялась вообще...
я хочу ее пропустить... отладить отдельно Sub SECOND() или Sub FIRST()
Отладка стартует с Sub Main(), и точка остановки в процедуре которая после блока Else if не получит управление...
соответственно ничего мне не дает...
т.е. если я хочу попасть на эту точку мне необходимо перед блоком Else If предопределить переменную Fact
так чтобы после проверки перейти в интересующую меня процедуру...
и стартовать сначала... каждый раз...
ЭТО ЭЛЕМЕНТАРНАЯ ЛОГИКА... А ЕСЛИ НЕТ, ЕСЛИ ТАКИХ ПРОВЕРОК ПАРА СОТЕН...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.