Страница: 1 |
Страница: 1 |
Вопрос: Перевести код с С
Добавлено: 18.09.04 23:44
Автор вопроса: Дмит | Web-сайт:
Пожалуйста помогите перевести на только один понятный мне язык 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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #3
Добавлено: 19.09.04 22:19
Как открыть файл я знаю (у меня: Open strFileName For Binary As #intFH).
А вот дальше с байтовыми переменными, как отметить последний байт в последовательности (старший бит =0) и в цикле – у меня «зацикливает»