powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение текстового файла
14 сообщений из 14, страница 1 из 1
Чтение текстового файла
    #34701295
Romka_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здрасте. Граждане подскажите пжлста, как текстовый файл полностью загнать в одну строку? Я, как везде ето написано, делаю следующим образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
path = MeFile
    FileHandle = FreeFile
    Open path For Input As #FileHandle
    Do While Not EOF(FileHandle)
        Line Input #FileHandle, Str
        s = s + Str
    Loop
    Close #FileHandle

Т.е. весь файл считывается построчно. А еси файл большой, то така штука работает очень долго. Соотвесно, у меня возникли подозрения, что если файл сразу в строку считать, то ето будет гораздо быстрее, только вот какой командой это сделать - я чет не нашел...
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34701417
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищи по форуму по словам "FSO" "ReadLine" "OpenTextFile" "ReadAll"
я думаю это то что тебе нужно.
С уважением, Николай.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34701465
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа так можно:
Код: plaintext
1.
2.
3.
4.
Dim f3 As String
f3 = String(FileLen("c:\1.txt"), vbNull)
Open "c:\1.txt" For Binary As # 1 
Get # 3 ,  1 , f3
Close
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34701596
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Get # 1 
Да.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34701650
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romka_84А еси файл большой, то така штука работает очень долго.тип String ограничен 64 килобайтами

придётся использовать массив

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Open Path For Binary As #FileHandle

Dim rSize As Long
rSize = LOF(FileHandle)

Dim masFile() As Byte
ReDim masFile( 1  To rSize)

Get FileHandle, , masFile()
Close #FileHandle
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34705480
pinpam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если без оператора GET? Можно:
Dim F As String
Dim MyText As string
Private Function reads ()
F = Free File
Open "путь_к_файлу" For Input As #F
Do Until EOF(F)
Line Input #F, MyText
Loop
Text1.Text = Text1.Text & MyText & vbCrLf
Close #F
End Function
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34706919
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тип String ограничен 64 килобайтами

?! С каких это пор? Всю жизнь был 2 гигабайта, а тут нате - урезали.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34707506
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkiades тип String ограничен 64 килобайтами

?! С каких это пор? Всю жизнь был 2 гигабайта, а тут нате - урезали. тип String 64k
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34707530
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. Смотрю в книгу - вижу фигу.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34707731
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А фраза про "fixed lenght" Вас уважаемый klen не смутила??? :)

С уважением, Николай.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34707846
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gjghjcА фраза про "fixed lenght" Вас уважаемый klen не смутила??? :)

С уважением, Николай.фраза - то была "Тип String", а не Variant.
Но я думаю, что надо использовать массив и не самый большой LOF(FileHandle), а частями, например, по 1024 байт.

Дело в том что когда мне, надо было читать большие текстовые файлы как можно быстрее,
я подбирал размер массива
и вот что у меня получилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
If rSize >  500000  Then
   chast =  1024 
ElseIf rSize >  400000  Then
   chast =  512 
ElseIf rSize >  300000  Then
   chast =  256 
ElseIf rSize >  200000  Then
   chast =  128 
Else
   chast =  64 
End If
, где rSize это размер файла, а chast это кэш


С уважением, Игорь.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34707955
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_ gjghjcА фраза про "fixed lenght" Вас уважаемый klen не смутила??? :)
С уважением, Николай.фраза - то была "Тип String", а не Variant.

Так ведь тип String - это как раз variable length string, и тип Variant здесь не причем. Учите матчасть.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34708069
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkiadesТак ведь тип String - это как раз variable length stringПонял, учту.
...
Рейтинг: 0 / 0
Чтение текстового файла
    #34708160
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В строку за раз:

Код: plaintext
1.
2.
3.
4.
FileHandle = FreeFile
Open path For Input As #FileHandle
s=Space$( LOF(#FileHandle))
Get #FileHandle, , s
Close #FileHandle

Но если файл будет дюже большой, то в памяти он может и не поместиться...
Почему именно за раз требуется?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение текстового файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]