ASCII файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
duk
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.07.2003 (Чт) 14:59
Откуда: Russia

ASCII файл

Сообщение duk » 12.08.2003 (Вт) 12:27

Такая ситуация
Есть перменная qwer='Дмитрий'
Надо создать текстовый файл с содержимым 'Дмитрий' в ASCII кодировке
Пробовал делать OpentextFile и CreateTextFile, указывая, что открывать(создавать) его следует именно как ASCII. С помощью write добавляю туда qwer. Но текст туда заносится как ANSI. Я, конечно, начинающий в VB. Может чего и не догоняю. Может кто-нибудь код приведет?

Boris_BGB
Флудер-Энтузиаст
Флудер-Энтузиаст
 
Сообщения: 661
Зарегистрирован: 11.12.2002 (Ср) 11:41

Сообщение Boris_BGB » 12.08.2003 (Вт) 12:37

Помоему ASCII это символьная таблица для привязки к клавишам? Или я глючу?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.08.2003 (Вт) 12:43

Ты не то что глючишь а по моему это... плющит тебя :) Всего причем.

Это кодировка. В Windows есть API для перевода ASCII в ANSI и обратно. Называются ANSIToOEM OEMToANSI по моему. MSDN почитайте в общем.

Георгий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 08.08.2003 (Пт) 15:08
Откуда: Россия

Сообщение Георгий » 12.08.2003 (Вт) 12:56

ИМХО, то, что тут названо ASCII и ANSI должно быть названно DOS и
WIN кодировки. Перерекодировать скорее всего придется в ручную... Составь таблицу соответствия символов и перед выводом пропускай текст через процедурку, которая дубет перекодировать:
примерно так:

Код: Выделить всё
Const ANSI = "АБВГДЕЖ..."
Const ASCII =chr(<код символа "А" в досе>)+chr(<код символа "B" в досе>)

Function trans (s as String) as String

Dim ss as string

ss=""
For i = 1 to Len (s)
  ss=ss+Mid(ASCII,InStr(1,ANSI,Mid(s,i,1)),1)
Next i

End function


ТЕкст кода приблизительный :) (Не проверялся)
Origin - это что?

Георгий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 08.08.2003 (Пт) 15:08
Откуда: Россия

Сообщение Георгий » 12.08.2003 (Вт) 12:57

Мды прикольно получилось :)
Origin - это что?

duk
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 31.07.2003 (Чт) 14:59
Откуда: Russia

А если не вручную?

Сообщение duk » 12.08.2003 (Вт) 13:20

Мне интересно, а что никто до этого никто такой проблемой не озадачивался? Неужели нет ничего до ужаса простого и стандартного?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.08.2003 (Вт) 13:24

Ты что читать не умеешь? :twisted: Написано же есть апи для конвертации.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.08.2003 (Ср) 7:26

Действительно, есть... Только называются чуть иначе...
Код: Выделить всё
Option Explicit

Private Declare Function OemToCharBuff Lib "user32.dll" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
Private Declare Function CharToOemBuff Lib "user32.dll" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long

Private Sub Form_Load()
  Dim a As String
 
  a = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
  CharToOemBuff a, a, Len(a)
 
  MsgBox a, vbInformation, "Конвертнули из Винды в Дос"
 
  OemToCharBuff a, a, Len(a)
 
  MsgBox a, vbInformation, "А теперь обратно"
 
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: PetalBot и гости: 4

    TopList