powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сохранять unicode-строки в файл
10 сообщений из 10, страница 1 из 1
Как сохранять unicode-строки в файл
    #32414231
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сохраняемые строки имеют UNICODE-содержимое. При сохранении в файл, используя print #, данные конвертируются в ANSI. Как сделать, чтобы в файле сохранялся юникод?
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32414319
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
внутри себя рано или поздно VB к WriteFile из kernel32.dll при обращении к внешней dll параметры, передаваемые как строки неминуемо преобразуются к ANSI представлению.

Если хочется писать средствами VB, то можно поиграться с приведением или копированием строки в массив типа Integer, который потом отдать на запись Put-у
Либо писать через API, заменив в объявлении WriteFile строковый буфер записи на Long и отдавая туда StrPtr желанной строки
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32414324
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dankov


s = "aaa"
Open "d:\test.txt" For Output As #1
Print #1, StrConv(s, vbUnicode)
Close #1

И будет тебе щасте :)


Magnus
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32414345
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dankov
А что ж не на Дельфях-то ? :)

Magnus
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32415314
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порой выбора не оставляют.
Спасибо за наводку.
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32418180
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то VB как-то лажово конвертит:

< U N I C O D E - W I N >
< V e r s i o n : 3 . 0 0 0 0 0 0 > < F e a t u r e S e t : I n D e s i g n - R o m a n > < C o l o r T a b l e : = < P a p e r : C O L O R : C M Y K : P r o c e s s : 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 > < B l a c k : C O L O R : C M Y K : P r o c e s s : 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 1 . 0 0 0 0 0 0 > >
< D e f i n e P a r a S t y l e : R u b r i k a = < N e x t s t y l e : R u b r i k a > < c C o l o r : P a p e r > < c S i z e : 6 . 0 0 0 0 0 0 > < c C a s e : A l l C a p s > < c L e a d i n g : 6 . 5 0 0 0 0 0 > < c L a n g u a g e : R u s s i a n > < p S p a c e B e f o r e : 1 . 4 1 7 3 2 3 > < c F o n t : F r e e S e t B l a c k C > < p R u l e A b o v e C o l o r : B l a c k > < p R u l e A b o v e S t r o k e : 6 . 0 0 0 0 0 0 > < p R u l e A b o v e O f f s e t : - 0 . 8 5 0 3 9 4 > < p R u l e A b o v e O n : 1 > < p T e x t A l i g n m e n t : C e n t e r > < p H y p h e n a t i o n W e i g h t : 0 > >
< D e f i n e P a r a S t y l e : P o d R u b r i k a = < N e x t s t y l e : P o d R u b r i k a > < c T y p e f a c e : B o l d > < c S i z e : 6 . 0 0 0 0 0 0 > < c C a s e : A l l C a p s > < c L e a d i n g : 6 . 5 0 0 0 0 0 > < c L a n g u a g e : R u s s i a n > < c F o n t : P r a g m a t i c a C > < p R u l e A b o v e C o l o r : B l a c k > < p R u l e A b o v e S t r o k e : 6 . 0 0 0 0 0 0 > < p R u l e A b o v e T i n t : 4 0 . 0 0 0 0 0 0 > < p R u l e A b o v e O f f s e t : - 0 . 8 5 0 3 9 4 > < p R u l e A b o v e O n : 1 > < p T e x t A l i g n m e n t : C e n t e r > < p H y p h e n a t i o n W e i g h t : 0 > >
< D e f i n e P a r a S t y l e : N o r m a l O b j = < N e x t s t y l e : N o r m a l O b j > < c S i z e : 6 . 0 0 0 0 0 0 > < c L e a d i n g : 6 . 5 0 0 0 0 0 > < c L a n g u a g e : R u s s i a n > < c F o n t : P r a g m a t i c a C > < p H y p h e n a t i o n W e i g h t : 0 > >
< D e f i n e P a r a S t y l e : B o l d O b j = < N e x t s t y l e : B o l d O b j > < c T y p e f a c e : B o l d > < c S i z e : 6 . 0 0 0 0 0 0 > < c L e a d i n g : 6 . 5 0 0 0 0 0 > < c L a n g u a g e : R u s s i a n > < c F o n t : P r a g m a t i c a C > < p H y p h e n a t i o n W e i g h t : 0 > >


Такое даже вордятина не принимает!
В чем баг?
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32418420
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой баг? Все в Юникоде, т.е. 2 байта на символ.

Magnus
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32418770
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ж говорю что такое даже вордятина не принимает!
Отличается от сохраненного, например, в блокноте!
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32419220
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первые 2 байта должны быть с кодами 255 и 254. Зачем - не знаю.
...
Рейтинг: 0 / 0
Как сохранять unicode-строки в файл
    #32419468
Фотография Boyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. не побороть?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сохранять unicode-строки в файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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