|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
Как правильно открыть TXT файл для чтения, например чтобы запихнуть в TextBox или просто загрузить в массив строк17.09.2023, 18:23. Показов 3418. Ответов 82
Метки нет (Все метки)
Я ещё раньше не занимался этим вопросом с помощью API-функций, так как всегда работал с помощью стандартных методов VB6. А теперь, поняв фундаментальный недостаток VB6-метода (отсутствие поддержки юникода в именах файлов), я хочу научиться открывать/загружать стандартный текстовый файл с помощью API.
Итак, за это отвечает у нас функция ReadFile, но уважаемый The Trick, я посмотрел, загружает файлы каким-то странным, другим способом, через функции CreateFileMapping и MapViewOfFile, я если честно в этом ничего не понимаю. Смотрел описание этих функций так толком и не понял зачем их использовать вместо стандартного ReadFile.
0
|
|
| 17.09.2023, 18:23 | |
|
Ответы с готовыми решениями:
82
GDI+ как освободить файл или открыть только для чтения Как открыть доступ для чтения файла 'output.txt'? Как поток чтения (или записи) запихнуть в класс? |
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||
| 21.09.2023, 17:15 [ТС] | ||
|
testuser2, ну а если загрузить мегабайт 300 или 500 сам подумай. Целую секунду можно сэкономить.
Добавлено через 34 секунды Добавлено через 30 секунд И не у всех людей такие мощные компьютеры
0
|
||
| 21.09.2023, 17:18 | |||
|
Добавлено через 2 минуты
0
|
|||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|||
| 21.09.2023, 17:22 [ТС] | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты testuser2, кстати если ты уж так любишь использовать String, то хотябы тогда используй String$ знак доллара, иногда, тоже может сэкономить кучу времени, на практике знаю, с долларом можно и пол секунды сэкономить даже
0
|
|||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 21.09.2023, 17:27 [ТС] | |
|
Чтобы программа работала быстрее всегда так же используй Mid$ вместо простого Mid, разница в скорости будет заметна, если обрабатывать текст десятками, а то и сотнями мегабайт данных
Добавлено через 1 минуту testuser2, а у меня 4 ядра и процессор вроде 3800 Мегагерц и всё равно медленнее, странно это конечно) Может в VB6 медленнее просто, не знаю) Добавлено через 2 минуты testuser2, хотя скорость в IDE VB6 и в EXE у меня одинаковая я посмотрел
0
|
|
| 21.09.2023, 17:30 | ||
|
0
|
||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|||||||
| 21.09.2023, 17:34 [ТС] | |||||||
|
testuser2, да и кстати String$ и Space$ имеет ограничение примерно на 500 Мб данных. В отличии от API. Хотя на самом деле строка должны быть до 2 Гб как минимум.
Добавлено через 1 минуту testuser2, сам посмотри:
VB очень даже отличный старичок) и программы работают быстро, если правильно и грамотно писать)
0
|
|||||||
| 21.09.2023, 17:37 | |
|
Не по теме: VB(VBA) в сфере макросов, абсолютный лидер по скорости и удобству, и конечно коду уже набито за 100 лет немеряно.
0
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 21.09.2023, 17:41 [ТС] | |
|
testuser2, так что теперь, для выделения строки, используй связку PutMem4 и SysAllocStringLen/SysAllocStringByteLen
0
|
|
|
Модератор
|
||||
| 21.09.2023, 18:29 | ||||
|
Добавлено через 1 минуту
0
|
||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 21.09.2023, 18:31 [ТС] | |
|
0
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||||
| 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
|
||||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 21.09.2023, 19:26 [ТС] | |
|
The trick, я проверю насколько быстрее будет с массивом. На миллисекунд 10 может)
Добавлено через 15 минут The trick, переопределять границы массива лучше всего через ReDim Preserve или через просто ReDim?
0
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 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
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|||||||||
| 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 и записать в него полученный массив, закрыть файл Как открыть файл для чтения?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|