Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Чтение из файла, файл в юникоде Добавлено: 26.11.06 13:17  

Автор вопроса:  Makes
Друзья, помогите разобраться. За ичасток кода буду благодарен неимоверно.
Как считать из файла инфу в Visual Basic 6.0? Инфа на русском и в UNICOD.

При считывании стандартным открытием через Open, получаю абра-кадабру.

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #1 Добавлено: 26.11.06 14:18
http://www.vbnet.ru/forum/show.aspx?id=92471

Ответить

Номер ответа: 2
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #2 Добавлено: 26.11.06 15:18
Все равно не получается. Вот участок проги:

Open "c:\1.xml" For Input As 1
Text1.Text = StrConv(Input(LOF(1), 1), vbFromUnicode)
Close 1


А файл, который я открываю могу выслать по почте прям в таком виде, в котором он у меня есть. Не хочу содержимое файла выкладывать здесь, вдруг кодировка как-нить изменится.

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 26.11.06 20:11
Dim buffer$
open "c:\1.xml" For binnry As #1
buffer$ = space$(lof(1))
Get #1,,buffer$
Close #1
buffer$ = StrConv(buffer$, vbFromUnicode)
Text1 = buffer$

Ответить

Номер ответа: 4
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #4 Добавлено: 26.11.06 20:37
Спасибо за код. Я все так сделал, все равно считывает знаки вопроса.
В чем дело не знаю. Может быть исходная кодировка не Unicod?
Может я вышлю файл по почте?
Можно посмотреть на своем компе - это файл, где аська свою историю сохраняет:
C:\Documents and Settings\Имя Юзера\Application Data\ICQLite\HistoryDB\UIN юзера\Контакт

Ответить

Номер ответа: 5
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #5 Добавлено: 28.11.06 20:50
Крик о помощи. АААААААА. Это очень важно. Как можно быстрее.

Ответить

Номер ответа: 6
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #6 Добавлено: 28.11.06 21:35
Ну отошли, отошли код, господи...

Ответить

Номер ответа: 7
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #7 Добавлено: 28.11.06 21:36
В смысле xml... :)

Ответить

Номер ответа: 8
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #8 Добавлено: 29.11.06 09:13
Ок.

<root>
<version>0x00140032</version>
<event>
<type>0</type>
<incoming>No</incoming>
<time>1161853770</time>
<text>Наташа, почему же ты не отвечаешь?
</text>
</event>
</root>

Ответить

Номер ответа: 9
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #9 Добавлено: 29.11.06 09:27
Во! Кто то еще стандартным ICQ -клиентом пользуется.
Но перевод то выложили, а код?

Ответить

Номер ответа: 10
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #10 Добавлено: 29.11.06 09:38
Какой код? Я пытаюсь считать указанный выше файл двумя вариантами:
1)Указанным участником HACKER
Dim buffer$
open "c:\1.xml" For binnry As #1
buffer$ = space$(lof(1))
Get #1,,buffer$
Close #1
buffer$ = StrConv(buffer$, vbFromUnicode)
Text1 = buffer$


2)Функцией
Private Function ReadLine(FilePath As String) As String
Dim FileNum, NextLine As String, LineFromFile As String
FileNum = FreeFile
Open FilePath For Input As FileNum
Do Until EOF(FileNum)
   Line Input #FileNum, NextLine
   LineFromFile = LineFromFile & NextLine
Loop
Close FileNum
ReadLine = LineFromFile
End Function


В обоих случаях фигня получается. Как считать эту инфу?

Ответить

Номер ответа: 11
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #11 Добавлено: 29.11.06 15:36
Dim buffer$
open "c:\1.xml" For binnry As #1
buffer$ = space$(lof(1))
Get #1,,buffer$
Close #1
buffer$ = StrConv(buffer$, vbFromUnicode)
Text1 = buffer$


Ты отошли xml по мылу, а то, что ты выложил, в перекодировке не нуждается.
P.S. И где unicode?

Ответить

Номер ответа: 12
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #12 Добавлено: 29.11.06 21:55
Вот: у тебя там текст в кодировке UTF-8. Как написано везде, штатными средствами ВБ6 эту кодировку не взять. Нашел ActiveX, возьми у меня на сайте, там все внутри, вместе с xml и необходимыми добавками ;) Вроде все работает, но надо будет покопаться с к/генератором: чего-то я не врубился... Отпишись, ежели разберешся.

Ответить

Номер ответа: 13
Автор ответа:
 Makes



Вопросов: 8
Ответов: 36
 Профиль | | #13 Добавлено: 30.11.06 08:06
Спасибо Вам, Арсений. Все скачал, но не разобрался. Это сподвигло меня покопаться в нашем форуме более детально - другого выхода не было. Я нашел такой топик за 2004 год:

http://www.vbnet.ru/forum/show.aspx?id=61783&page=2


Здесь уже обсуждалось, как перевести из UTF-8 в Win.

Все огромное спасибо.

Ответить

Номер ответа: 14
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #14 Добавлено: 30.11.06 22:10
а... кажеться догадываюсь :)

Text1 = buffer$


По умолчанию шрифт там MS Sans Serif, а он юникод не поддерживает :) Но ещё у меня есть Lucida Sans Unicode, и как раз набор символов у него кириллический есть, попробуй что-ли :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам