Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Перевести код с С Добавлено: 18.09.04 23:44  

Автор вопроса:  Дмит | Web-сайт: dimit.pochta.ru
Пожалуйста помогите перевести на только один понятный мне язык VB:
Пример программы, которая позволяет записывать и читать
величины переменной длины, подобные временам дельта.
Функция WriteVarLen(), передает 32-битное значение и преобразует
его в последовательность байтов, записываемых в файл.
Функция ReadVarLen() читает последовательность байтов из
файла до тех пор, пока не достигнет последнего байта значения
переменной длины, после чего возвращает 32-битное значние.

void WriteVarLen(register unsigned long value)
{
register unsigned long buffer;
buffer = value & 0x7F;
while ( (value >>= 7) )
{
buffer <<= 8;
buffer |= ((value & 0x7F) | 0x80);
}
while (TRUE)
{
putc(buffer,outfile);
if (buffer & 0x80)
buffer >>= 8;
else
break;
}
}
unsigned long ReadVarLen()
{
register unsigned long value;
register unsigned char c;
if ( (value = getc(infile)) & 0x80 )
{
value &= 0x7F;
do
{
value = (value >> 7) + ((c = getc(infile)) & 0x7F);
} while (c & 0x80);
}
return(value);
}
заранее благодарен Дмитрий.

Ответить

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

Номер ответа: 1
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #1
Добавлено: 19.09.04 08:58
Имеется ввиду что-то в этом роде?

Dim MyString, MyNumber
Open "TESTFILE" For Input As #1 ' Open file for input.
Do While Not EOF(1) ' Loop until end of file.
    Input #1, MyString, MyNumberinto two variables.
    'Debug.Print MyString, MyNumber
msgbox MyString
Loop
Close #1

Ответить

Номер ответа: 2
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #2
Добавлено: 19.09.04 11:39
Или скорее всего так:
'методы использующиеся в TextStream
x.ReadLine 'читает строку
x.read (characters) 'читает символ
x.readall 'читает все
x.Skip (characters) 'переход на символ
x.skipline 'переход на строку
x.Write ("string";) 'писать "string"
x.WriteBlankLines (1) 'переход записи на номер строки
x.writeline ([String]) 'писать строку
x.Close 'закрыть
Const Для_чтения = 1, Для_записи = 2, Для_дополнения = 8
Sub OpenTextFileTest() 'пример
    Set fs = CreateObject("Scripting.FileSystemObject";)
    Set f = fs.OpenTextFile("c:\testfile.txt", 8, TristateFalse)
    f.Write "Привет страна"
    f.Close
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #3
Добавлено: 19.09.04 22:19
Как открыть файл я знаю (у меня: Open strFileName For Binary As #intFH).
А вот дальше с байтовыми переменными, как отметить последний байт в последовательности (старший бит =0) и в цикле – у меня «зацикливает»

Ответить

Страница: 1 |

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



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