Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодирование текста из DOS в Windows, Как в VB6 перекодировать текст? 
V
    Опции темы
Игорь
  Дата 21.6.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



Я столкнулся с такой проблемой, как перекодирование текста из DOS(овского) формата на формат Windows. Нужно написать программу на Visual(е) Basic(е), которая позволит мне перекодировать текст. Отдельные программы не подходят, нужен код, который бы брал текст например из Text1.text и перекодировал его. 
PM MAIL ICQ   Вверх
Akina
Дата 21.6.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Поможет использование API-функций

Код

Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Игорь
  Дата 22.6.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



VBasic выдает ошибку, типа:

    ! Ошибка компиляции:

     Константы, ряды устанавливаемой - длины, массивы, определяемые пользователем типы и инструкции Declarate, не позволены как общие участники объектных модулей

Если этот код поставить на процедуру кнопки (Command1), то:

    ! Ошибка компиляции:

     Только комментарии могут появляться после End Sub, End Function, or End Property

Это сообщение выдает не смотря на то, что код стоит перед закрывающим кодом:
End Function
End Sub

Может я что-то делаю не так? Есть ли в инете пример этих команд, которые работают нормально?

P.S.Посмотрел страничку API функции, но что-то код у меня не заработал 
PM MAIL ICQ   Вверх
cardinal
Дата 22.6.2006, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код

Option Explicit

Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Private Sub Command1_Click()
Dim src As String
Dim dst As String
src = "абвгд"
dst = "     "
CharToOem src, dst
Debug.Print dst
src = "     "
OemToChar dst, src
Debug.Print src
End Sub

Изучи кстати API Viewer - полезная штука...

А примеров в инете куча. Например:
http://www.devx.com/vb2themax/Tip/19094 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 22.6.2006, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Вообще правилом хорошего тона считается заведение отдельного модуля с описаниями глобальных функций, констант и переменных. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Игорь
  Дата 22.6.2006, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



Спасибо Вам, получается.
Вопрос к коду:
Код

dst = "     "
CharToOem src, dst
Debug.Print dst
src = "     "

Здесь ограничена длина (src = "     "), как избежать ограничение количеств ввода символов, тек как работать нужно с крупным текстом?

Добавлено @ 11:32 
Все, справился, СПАСИБО ВАМ! smile  
PM MAIL ICQ   Вверх
Akina
Дата 22.6.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Обычно все-таки делают вот так:
Код
dst = space(len(src))
CharToOem src, dst

 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Игорь
Дата 25.6.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



Я сделал по другому:

Код

src = Text1.Text
dst = Text1.Text
CharToOem src, dst
Text1.Text =  dst


Вроде работает как надо 
PM MAIL ICQ   Вверх
cardinal
Дата 25.6.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Игорь, лучше сделай так, как написал Akina. ИМХО писать так, как сделал ты "неприлично"... smile Да и как я понимаю после 64kB начнуться проблемы.  


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Игорь
Дата 25.6.2006, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



Если будет большой и объемный текст, начнет глючить?
Тогда лучше сделаю так, как сказано выше.
СПАСИБО!!!  smile  
PM MAIL ICQ   Вверх
cardinal
Дата 25.6.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Да нет так просто приличней писать. А что касается большого текста, то он не влезет в TextBox...
http://www.rusedu.info/Article173.html 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Игорь
Дата 25.6.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2006

Репутация: 1
Всего: 1



Цитата

А что касается большого текста, то он не влезет в TextBox...


Если настроить TextBox:

    Multiline    True
    Scrollbars    Both

и растянуть его на все поле, то влезет  smile  

А ссылка пелезная, спасибо! 
PM MAIL ICQ   Вверх
cardinal
Дата 26.6.2006, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Не за что. smile  


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.