|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
Как правильно открыть TXT файл для чтения, например чтобы запихнуть в TextBox или просто загрузить в массив строк17.09.2023, 18:23. Показов 3940. Ответов 82
Метки нет (Все метки)
Я ещё раньше не занимался этим вопросом с помощью API-функций, так как всегда работал с помощью стандартных методов VB6. А теперь, поняв фундаментальный недостаток VB6-метода (отсутствие поддержки юникода в именах файлов), я хочу научиться открывать/загружать стандартный текстовый файл с помощью API.
Итак, за это отвечает у нас функция ReadFile, но уважаемый The Trick, я посмотрел, загружает файлы каким-то странным, другим способом, через функции CreateFileMapping и MapViewOfFile, я если честно в этом ничего не понимаю. Смотрел описание этих функций так толком и не понял зачем их использовать вместо стандартного ReadFile.
0
|
|
| 17.09.2023, 18:23 | |
|
Ответы с готовыми решениями:
82
GDI+ как освободить файл или открыть только для чтения Как открыть доступ для чтения файла 'output.txt'? Как поток чтения (или записи) запихнуть в класс? |
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 21.09.2023, 17:15 [ТС] | ||
|
testuser2, ну а если загрузить мегабайт 300 или 500 сам подумай. Целую секунду можно сэкономить.
Добавлено через 34 секунды Добавлено через 30 секунд И не у всех людей такие мощные компьютеры
0
|
||
| 21.09.2023, 17:18 | |||
|
Добавлено через 2 минуты
0
|
|||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||
| 21.09.2023, 17:22 [ТС] | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты testuser2, кстати если ты уж так любишь использовать String, то хотябы тогда используй String$ знак доллара, иногда, тоже может сэкономить кучу времени, на практике знаю, с долларом можно и пол секунды сэкономить даже
0
|
|||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 21.09.2023, 17:27 [ТС] | |
|
Чтобы программа работала быстрее всегда так же используй Mid$ вместо простого Mid, разница в скорости будет заметна, если обрабатывать текст десятками, а то и сотнями мегабайт данных
Добавлено через 1 минуту testuser2, а у меня 4 ядра и процессор вроде 3800 Мегагерц и всё равно медленнее, странно это конечно) Может в VB6 медленнее просто, не знаю) Добавлено через 2 минуты testuser2, хотя скорость в IDE VB6 и в EXE у меня одинаковая я посмотрел
0
|
|
| 21.09.2023, 17:30 | ||
|
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||
| 21.09.2023, 17:34 [ТС] | |||||||
|
testuser2, да и кстати String$ и Space$ имеет ограничение примерно на 500 Мб данных. В отличии от API. Хотя на самом деле строка должны быть до 2 Гб как минимум.
Добавлено через 1 минуту testuser2, сам посмотри:
VB очень даже отличный старичок) и программы работают быстро, если правильно и грамотно писать)
0
|
|||||||
| 21.09.2023, 17:37 | |
|
Не по теме: VB(VBA) в сфере макросов, абсолютный лидер по скорости и удобству, и конечно коду уже набито за 100 лет немеряно.
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 21.09.2023, 17:41 [ТС] | |
|
testuser2, так что теперь, для выделения строки, используй связку PutMem4 и SysAllocStringLen/SysAllocStringByteLen
0
|
|
|
Модератор
|
||||
| 21.09.2023, 18:29 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 21.09.2023, 18:31 [ТС] | |
|
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||||
| 21.09.2023, 18:51 [ТС] | ||||
|
Добавлено через 46 секунд Ну могу ещё три ChrB соединить но это одно и тоже получится Добавлено через 54 секунды Ну или байтовый массив, как ты предлагаешь и сравнивать первые три байта, но это одно и тоже будет. Добавлено через 2 минуты Думаешь MidB$(stringbuffer, 1, 3) медленно работать будет что ли. Думаю так же быстро как и сравнивать первые три байта из байтового массива. Добавлено через 7 минут Добавлено через 50 секунд Всё равно я регистрирую свою программу к перезапуску в случае сбоя Добавлено через 5 минут The trick, кстати говоря ты вот любишь использовать Space$ для выделения строки, а если у тебя зафелится эта команда? То вообще будет Run-time error 14 Недостаточно места в строке. Фиг ты проверишь хватит памяти или не хватит.
0
|
||||
|
Модератор
|
||||||
| 21.09.2023, 19:04 | ||||||
|
0
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 21.09.2023, 19:26 [ТС] | |
|
The trick, я проверю насколько быстрее будет с массивом. На миллисекунд 10 может)
Добавлено через 15 минут The trick, переопределять границы массива лучше всего через ReDim Preserve или через просто ReDim?
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 21.09.2023, 19:50 [ТС] | |
|
The trick, переписал на байтовый массив - ничем не отличается по скорости вообще для 100 Мб
Добавлено через 2 минуты The trick, пробую теперь на 200 Мб и смотрю и вижу что мой первоначальный вариант со строкой оказался быстрее по скорости Добавлено через 50 секунд Может конечно медленно работает ReDim Preserve byte_array(FileSize - 1) но факт остаётся фактом что со строкой мой первый код работает быстрее у меня Добавлено через 1 минуту 842 ml строка 889 ml байтовый массив
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||||
| 21.09.2023, 20:08 [ТС] | |||||||||
|
Так что зря ты мне посоветовал на байтовый массив переходить
Добавлено через 1 минуту Добавлено через 1 минуту The trick, ты мне советовал именно байтовый массив, ругая меня, что я использую строку. А оказалось что строка быстрее. Добавлено через 2 минуты Добавлено через 51 секунду The trick, вот, смотри сам:
The trick, ну вот я тебе и доказал, что ты был неправ, что массив быстрее будет Добавлено через 11 минут
0
|
|||||||||
| 21.09.2023, 20:08 | |
|
Открыть файл и загрузить содержимое в TextBox Как расшифровать файл dat или просто открыть его и вывести на экран Открыть для записи текстовый файл data.txt и записать в него полученный массив, закрыть файл Как открыть файл для чтения?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|