ReadUTF из j2me в VB.NET

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

SlaDER
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.10.2005 (Чт) 16:54

ReadUTF из j2me в VB.NET

Сообщение SlaDER » 11.05.2007 (Пт) 21:23

Сколько не пытался не получается перевести одну функцию из java в VB.NET

public final String readUTF() throws IOException {
return readUTF(((DataInput) (this)));
}

public static final String readUTF(DataInput in) throws IOException {
int utflen = in.readUnsignedShort();
StringBuffer str = new StringBuffer(utflen);
byte bytearr[] = new byte[utflen];
int count = 0;
in.readFully(bytearr, 0, utflen);
while(count < utflen) {
int c = bytearr[count] & 0xff;
switch(c >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
count++;
str.append((char)c);
break;

case 12:
case 13:
if((count += 2) > utflen)
throw new UTFDataFormatException();
int char2 = bytearr[count - 1];
if((char2 & 0xc0) != 128)
throw new UTFDataFormatException();
str.append((char)((c & 0x1f) << 6 | char2 & 0x3f));
break;

case 14:
if((count += 3) > utflen)
throw new UTFDataFormatException();
int char2 = bytearr[count - 2];
int char3 = bytearr[count - 1];
if((char2 & 0xc0) != 128 || (char3 & 0xc0) != 128)
throw new UTFDataFormatException();
str.append((char)((c & 0xf) << 12 | (char2 & 0x3f) << 6 | (char3 & 0x3f) << 0));
break;

case 8:
case 9:
case 10:
case 11:
default:
throw new UTFDataFormatException();
}
}
return new String(str);
}


Может тут найдутся знающие люди и помогут?
P.S. Класс DataInput я уже перевел на VB.NET

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 11.05.2007 (Пт) 21:32

Вопрос: что она должна делать? Если менять кодировку - FW это умеет.
Изображение

SlaDER
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.10.2005 (Чт) 16:54

Сообщение SlaDER » 12.05.2007 (Сб) 18:31

Как я понимаю она считывает и меняет кодировку. Я просто делаю свой Mobile Unpaker т.е. прогу которая будет распаковывать мобильные архивы с ресурсами. Уже реализована распаковка от Elkware. Чтобы реализовать другие распаковщики, мне нужно эту функцию перевести на VB.NET

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 12.05.2007 (Сб) 18:56

Зацени System.Text. Там куча конвертилок
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 12.05.2007 (Сб) 23:37

Вот пример конвертации из Unicode в "некоторую" кодировку. По аналогии можно написать конвертилку из "какой-нибудь" в Unicode.

Function EncodeString(ByRef SourceData As String, ByRef CharSet As String) As Byte()
'get a byte pointer To the source data
Dim bSourceData As Byte() = System.Text.Encoding.Unicode.GetBytes(SourceData)

'get destination encoding
Dim OutEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding(CharSet)

'Encode the data To destination code page/charset
Return System.Text.Encoding.Convert(System.Text.Encoding.Unicode, OutEncoding, bSourceData)
End Function
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92

    TopList