|
38 / 2 / 0
Регистрация: 29.04.2011
Сообщений: 51
|
|||||||||||
Чтение из файла в нужной кодировке (трудности перевода с VB 6.0)27.05.2015, 20:18. Показов 3392. Ответов 6
Метки нет (Все метки)
Добрый вечер!
При переписывании старого "шестого" кода обнаружил, что FileOpen() работает с ANSI. Мне требуется UTF-8, поэтому решил использовать System.IO.File. Но тут возникло недопонимание сути работы методов , да и много их так чё-то)) Напомню, что для записи в файл было либо через Output (полная перезапись файла), либо через Append (добавление строк в конец файла). Насколько я понял, Append теперь более-менее соответствует метод AppendAllText(), про Output напишу ниже. Для чтения из файла был режим Input, при этом я использовал способ Line Input. То есть из файла читалось по одной строке. И вот тут у меня возникает недопонимание. Чтение производилось примерно так:
0
|
|||||||||||
| 27.05.2015, 20:18 | |
|
Ответы с готовыми решениями:
6
Чтение из файла в нужной кодировке Чтение файла в нужной кодировке Чтение из файла в нужной кодировке |
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 27.05.2015, 20:46 | |
|
zusicks438, в принципе, эти костыли можно реализовать и в VB .NET
Но лучше посмотреть тут https://www.cyberforum.ru/post1942265.html
1
|
|
|
38 / 2 / 0
Регистрация: 29.04.2011
Сообщений: 51
|
|
| 27.05.2015, 20:52 [ТС] | |
|
Памирыч, то есть лучше читать в массив, редактировать в массиве и сохранять из массива? Ну что ж, спасибо, тогда придётся немного переписать код.
0
|
|
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 27.05.2015, 21:05 | |
|
zusicks438, зависит от задачи. Смотря как происходит запись и как считывание и в какие моменты.
В любом случае, в .NET работа с файлами продумана так, что эти костыли из первого поста утратили всякую актуальность. Насколько мне известно, во Framework 4 или старше в работе с файлами были добавлены дополнительные функции
0
|
|
|
38 / 2 / 0
Регистрация: 29.04.2011
Сообщений: 51
|
||||||
| 27.05.2015, 21:45 [ТС] | ||||||
|
Что-то непонятное...
Написал следующий код прямо при старте программы (Form Load), вывожу в ListBox через массив, потому что с массивом ещё хочу поработать перед выводом, но пока без этого:
В ListBox на месте русского языка отображаются кракозябры, как при попытке прочитать UTF-8 в качестве ANSI. Что характерно, я пытался изменить System.Text.Encoding на какой-нибудь UTF32 или ANSI, но в результате вывод в ListBox всё равно получался точно таким же.Маленькая деталь (возможно, не имеет значения): при кодировании файла в UTF-8 без BOM и кодировании файла в обычном UTF-8 в ListBox отображаются "кракозябры" в первой строке (что само по себе логично, но мало ли).
0
|
||||||
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 27.05.2015, 21:55 | |
|
Пока сложно сказать, я как-то не мудрил с кодировками, известно лишь, что читать файл лучше в той кодировке, в какой его записывали.
Другими словами, если Вы записали файл в UTF-8, то некоторые символы, в т.ч. кириллица, не могут быть корректно прочтены в других кодировках.
0
|
|
|
38 / 2 / 0
Регистрация: 29.04.2011
Сообщений: 51
|
|
| 27.05.2015, 22:42 [ТС] | |
|
Памирыч, в принципе есть ещё второй вариант, что я зря беспокою общественность) Сейчас создал новый проект, добавил туда листбокс, вписал тот же код, положил в папку с exe тот же файл...ну блин, оно работает, вполне себе неплохо. То ли я опять кривой, то ли конвертация. Сейчас буду шерстить код. Эх, а так хотелось маленького чуда
![]() Добавлено через 44 минуты Памирыч, уррррааааа! Впервые радуюсь тому, что у меня таки кривые руки! Срабатывала старая функция при наступлении события, которое в VB6 наступало немножко при другом условии.Файл открывается нормально, в UTF-8. Надеюсь, что с записью проблем не возникнет.
0
|
|
| 27.05.2015, 22:42 | |
|
Помогаю со студенческими работами здесь
7
Считывание из файла в нужной кодировке Открытие файла в нужной кодировке Открытие текстового файла в нужной кодировке Загрузка DBF файла в нужной кодировке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|