7-Bit-encoded Integer - .Net Strings lesen/schreiben

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

Jolinah

Betreff: 7-Bit-encoded Integer - .Net Strings lesen/schreiben

BeitragSo, Mai 22, 2005 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, hab gedacht ich mach daraus gleich ein kleines Modul.
Siehe https://www.blitzforum.de/viewtopic.php?t=11528

Code: [AUSKLAPPEN]

Strict

Module pub.cstring

Import brl.stream

Function Read7BitInt(stream:TStream)
   Local _count:Int = 0
   Local _shift:Int = 0
   Local _counter:Int = 0
   Local _b:Byte = 0
   
   Repeat
      Try
         _b = ReadByte(stream)
      Catch Ex:Object
         Throw "Error reading 7 Bit encoded Integer"
      End Try
      
      _counter :+ 1
      
      If _counter > 4
         Throw "Overflow 7 Bit encoded Integer"
      EndIf
      
      _count = _count | (_b & $7F) Shl _shift
      _shift :+ 7

   Until (_b & $80) = 0
   
   Return _count
   
End Function

Function Write7BitInt(stream:TStream, value:Int)
   While value >= $80
      WriteByte(stream, Byte((value | $80)) )
      value = value Shr 7
   Wend
   
   WriteByte(stream, Byte(value))
End Function

Function ReadCString:String(stream:TStream)
   Local length:Int = Read7BitInt(stream)
   Local value:String = ReadString(stream, length)
   Return value
End Function

Function WriteCString(stream:TStream, value:String)
   Write7BitInt(stream, Len(value))
   WriteString(stream, value)
End Function


Anwendung:
Code: [AUSKLAPPEN]

Local stream = CreateUDPStream()
Local name:String = ReadCString(stream)
WriteCString(stream, name)

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group