Как считывать по выбору строки в текстовом файле?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Как считывать по выбору строки в текстовом файле?

Сообщение ala-x » 24.05.2009 (Вс) 17:18

Вот код который начинает читать строки с начала(с первой строки), если попадает на запись (end) в строке текстового файла.
Код: Выделить всё
10
d = d + 1
MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open App.Path & "\1.txt" For Input As #MyFile 'Открываем файл 1.txt для чтения
For i = 1 To d
Line Input #MyFile, tS 'Читаем файл 1.txt построчно
If i >= d Then S = tS 'Если пятая строка, то запоминаем ее в переменную S
Next i
Close #MyFile 'Закрываем файл
Label1.Caption = S

If S = "end" Then
d = 0
GoTo 10

Вопрос такой....Как к примеру читать строку 2 или 3 ,по выбору (скажем если я записываю в текст бокс число 3---значит читаем строку 3, Если заполняю число 7 --значит читаем строку 7 в текстовом файле)и выводить эту строку в текст бокс 2? к примеру надо дать название меню ,читая определённую строку из текст файла

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Как считывать по выбору строки в текстовом файле?

Сообщение Xcode » 24.05.2009 (Вс) 21:24

Почему бы не использовать ini файлы?

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: Как считывать по выбору строки в текстовом файле?

Сообщение DeMONiZ » 24.05.2009 (Вс) 21:57

Вижу свой кривой код....
Видишь эту строчку?:
Код: Выделить всё
d = d + 1

поменяй ее на такую:
Код: Выделить всё
d=2

и посмотри что будет. Или дать пояснение всему коду?

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Как считывать по выбору строки в текстовом файле?

Сообщение arvitaly » 24.05.2009 (Вс) 22:21

Код: Выделить всё
    10
    d = d + 1
    MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
    Open App.Path & "\1.txt" For Input As #MyFile 'Открываем файл 1.txt для чтения
    For i = 1 To d
    Line Input #MyFile, tS 'Читаем файл 1.txt построчно
    If i >= d Then S = tS 'Если пятая строка, то запоминаем ее в переменную S
    Next i
    Close #MyFile 'Закрываем файл
    Label1.Caption = S

    If S = "end" Then
    d = 0
    GoTo 10

жесть :D

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: Как считывать по выбору строки в текстовом файле?

Сообщение DeMONiZ » 24.05.2009 (Вс) 22:31

Ну да сейчас бы сделал по друому...

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Как считывать по выбору строки в текстовом файле?

Сообщение ala-x » 11.12.2009 (Пт) 20:12

Если заменить строчку
Код: Выделить всё
d = d + 1
на строчку
Код: Выделить всё
d=2
Выполняется переход только на строку 2 , а дольше не двигается

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как считывать по выбору строки в текстовом файле?

Сообщение MIT » 11.12.2009 (Пт) 20:32

Если длина строки не фиксирована и не регламетирована, то сделать этого нельзя.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Как считывать по выбору строки в текстовом файле?

Сообщение FireFenix » 11.12.2009 (Пт) 21:01

Код: Выделить всё
Public Function GetLine(ByVal FileName as String, ByVal Line As Integer) As String
  Dim i As Integer
  Dim Text as String
 
  i = 0
 
  Open FileName For Input As #1

  Do Until EOF(1)
    Line Input #1, Text
   
    If i = Line Then
      Close #1
     
      Return Text
    End If
   
    i = i + 1
  Loop
 
  Close #1
 
  Return Nothing
End Function

Вызов
Код: Выделить всё
Dim Line as String

Line = GetLine("C:1.txt", 5)

If Line Is Nothing Then
  MsgBox("Не правильно указанна строка")
Else
  TextBox1.Text = Line
End If

Думаю ТС хотел что-то типа этого

P.S. VB6 нету, поэтому писал по памяти на коленке
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Как считывать по выбору строки в текстовом файле?

Сообщение ala-x » 11.12.2009 (Пт) 21:28

Не совсем..К примеру есть текст файл в котором список программ.
Первая запись--"Программы" её читать не нужно.Нужно читать начиная со 2-й строки.К примеру (антивирус)
и после считывания всей записи после строки end Вернуться на строчку (антивирус) т.е. не на первую запись а на вторую

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Как считывать по выбору строки в текстовом файле?

Сообщение FireFenix » 11.12.2009 (Пт) 21:38

ala-x писал(а):Не совсем..К примеру есть текст файл в котором список программ.
Первая запись--"Программы" её читать не нужно.Нужно читать начиная со 2-й строки.К примеру (антивирус)
и после считывания всей записи после строки end Вернуться на строчку (антивирус) т.е. не на первую запись а на вторую

Если ты хранишь какие-то данные с разделами подразделами, то тебе прямая дорога к изучению XML
как сосчитать с любой указанной строки я показал
Код: Выделить всё
GetLine(Файл, Строка)
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Как считывать по выбору строки в текстовом файле?

Сообщение ala-x » 11.12.2009 (Пт) 21:46

Нет ты меня не понял..самый верхний код этой темы работает отлично..Вот только он читать начинает с первой строки а нужно начинать со второй .Программа автоматически считывает одну строку показывает описание закрывает читает следующую строку.В твоём примере считывание строки фиксировано.Нужно просто сменить что то в верхнем коде.Я пробовал менять d=d+1 на d=d+2 Тогда начинает читать со 2-й строки но после достижения записи end ,не возвращается на вторую строку..Проблема в этом.XML ни какого отношения к этому не имеет

alex77755
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 97
Зарегистрирован: 24.03.2009 (Вт) 11:40

Re: Как считывать по выбору строки в текстовом файле?

Сообщение alex77755 » 14.12.2009 (Пн) 0:55

А если считывать в массив и разбивать на строки?

Код: Выделить всё
  Dim File As String, CF As String
   'объявим пеpеменнyю для имени файла и его cодеpжимого
   File = App.Path & "\1.txt"  '   ycтановим имя файла и пyть
   Open File For Binary As #1    'откpоем файл для чтения
      CF = Input(FileLen(File), 1)   'загpyзить в пеpеменyю CF вcе cодеpжимое файла
   Close #1    'закpыть файл
'Разбиваем на массив строк
Dim ArrayLines() as  String
ArrayLines = Split(CF, vbNewLine)

'Теперь tmp = ArrayLines(0) - первая строка, tmp$ = ArrayLines(1) - вторая, итп...

Форма1.Текст2.Text = ArrayLines(Val(Форма1.Текст1.Text))


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 70

    TopList