На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Отображение UTF-8 в TextBox
    Здравствуйте! Есть TXT-файл с диакритическими знаками в UTF-8, при попытке вывести их в TextBox, появляются знаки вопроса. Пробовал Ричтекстбокс, тоже самое.
    Полночи просидел в интернете, пытался найти решение, так толком не нашёл ничего.
    Подскажите, пожалуйста, как быть.

    ExpandedWrap disabled
      Dim barBuffer() As Byte
      Dim sarLines() As String
       
      Dim lngCounter As Long
       
      Dim strText As String
       
      Open App.Path & "\msg.txt" For Binary Access Read As #1
       
      ReDim barBuffer(FileLen(App.Path & "\msg.txt") - 1)
      Get #1, , barBuffer
      Close #1
       
      If (barBuffer(0) = &HEF And barBuffer(1) = &HBB And barBuffer(2) = &HBF) Then
      strText = Mid(barBuffer, 3)
      Else
      strText = barBuffer
      End If
       
      sarLines = Split(strText, vbNewLine)
       
      For lngCounter = LBound(sarLines) To UBound(sarLines)
      barBuffer = sarLines(lngCounter) & vbNewLine
      txtmsg.Text = barBuffer
      Next lngCounter
    log(2 ^ 232.582.657)-1 is prime!
      Ребят, мне тут подсказали такую вещь: "Проблема в том,что VB делает двойное преобразование кодировки.Первая зависит от системных настроек,а вторая в свою. Где-то читал уже точно не помню.Выход предлагался: записывать из буфера в массив,тогда таких преобразований не происходит.Я не проверял, по этому ничего не скажу."

      Что скажете по этому поводу?

      Добавлено
      Ещё есть такой вариант рабочий (проверял!):

      ExpandedWrap disabled
        RichTextBox.LoadFile App.Path & "\msg.txt"


      но у RichTextBox не настраивается цвет шрифта, поэтому этот метод не совсем хорош.
      log(2 ^ 232.582.657)-1 is prime!
        Дали ссылку на юникод-аналоги контролов: http://www.vbforums.com/showthread.php?698...ommon-controls)

        без бутылки не компилируется их проект
        надо разбираться, что там ему не хватает
        log(2 ^ 232.582.657)-1 is prime!
          Выход - только в использовании контролов, поддерживающих юникод.

          можно попробовать использовать веб-браузер контрол или dhtmledit
            не люблю я, опять же
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script Execution time: 0,0810 ]   [ 15 queries used ]   [ Generated: 15.11.19, 23:23 GMT ]