Member 13396059 Ответов: 3

Программирование VB6 о чтении данных из файла


Привет,

Мне нужна некоторая помощь относительно чтения данных из файла в vb6,моя проблема в том, что у меня есть файл, содержащий 2000 строк, но я хочу прочитать только 183 строки, но в моем коде я читаю весь файл.

пожалуйста, решите мою проблему

Ниже я привел только одну часть своего кода, связанную с вводом файлов.

Спасибо

Что я уже пробовал:

Ф = FreeFile
Откройте имя файла для ввода как #f

Do While Not EOF(1)
Линейный вход #f, FileLine


...............- код здесь....................


петля
закрыть #f

3 Ответов

Рейтинг:
1

CHill60

Введите счетчик линий и остановитесь, когда дойдете до 183

f = FreeFile
Open FileName For Input As #f
Dim lc As Integer
lc = 1
Do While Not EOF(1) and lc < 184
    Line Input #f, FileLine
    ................code here....................

    lc = lc + 1
loop
close #f 


Member 13396059

Решил это спасибо тебе
Я уже использовал
если считать >182, то
выход делать
конец, если

CHill60

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

Рейтинг:
1

Dirk Bahle

Окончательный ответ невозможен, потому что вы ничего не говорите о структуре файла или о том, что вы на самом деле хотите прочитать. Рассмотрим следующую программу:

Вы хотите:
1> прочитайте определенную строку с определенным содержанием, например строки, начинающиеся с "ReadThis" или
2. хотели ли вы прочитать определенный набор строк, например строку 1000-1183?

Я изменю код в зависимости от того, что вы хотите - пожалуйста, укажите более подробную информацию о содержимом файла и о том, что вам нужно прочитать ...

Imports System
Imports System.IO

Public Class Program

    Public Shared Sub Main()
        Try
            Using sr As StreamReader = New StreamReader("TestFile.txt")
                Dim line As String = sr.ReadToEnd()
                Console.WriteLine(line)
            End Using
        Catch e As Exception
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(e.Message)
        End Try
    End Sub
End Class


Member 13396059

Решил это спасибо тебе
Я уже использовал
если считать >182, то
выход делать
конец, если

CHill60

OP использует VB6

Рейтинг:
0

Dirk Bahle

Вот более полный пример VB.Net решение, основанное на номерах строк, если у кого-то возникнет такая же проблема через некоторое время ...

' Read each line in a text file and print its contents line by line
Module Module1

    Sub Main()
        Dim lineNumber As Integer
        Dim lineOfText As String
        Dim filestream = New System.IO.FileStream("TextFile.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)
        Dim file = New System.IO.StreamReader(filestream, System.Text.Encoding.UTF8, True, 128)

        lineNumber = 0
        lineOfText = file.ReadLine()
        While (lineOfText IsNot Nothing)

            Console.WriteLine("{0} '{1}'", lineNumber, lineOfText)
            lineNumber = lineNumber + 1
            lineOfText = file.ReadLine()

        End While

        Console.ReadKey()
    End Sub

End Module