Hi,
have those three functions and need help to convert them from C# to Xojo. I’m not sure, if the Bitwise class is the right direction. Can someone help please?
private static int GetInt16(Stream stream) {
return stream.ReadByte() << 8 | stream.ReadByte();
}
private static int GetInt24(Stream stream) {
return stream.ReadByte() << 16 |
stream.ReadByte() << 8 | stream.ReadByte();
}
private static int GetInt32(Stream stream) {
return stream.ReadByte() << 24 | stream.ReadByte() << 16 |
stream.ReadByte() << 8 | stream.ReadByte();
}
Yes you could use bit wise shifts
Or an MB like
I believe that in C# int = Int32
GetInt16(stream as BinaryStream) as int32
var mb as new Memoryblock(2)
mb.Uint8Value(0) = stream.ReadUint8
mb.Uint8Value(1) = stream.ReadUint8
return mb.Uint16Value(0)
}
GetInt24(stream as BinaryStream) as Int32
var mb as new Memoryblock(3)
mb.Uint8Value(0) = stream.ReadUint8
mb.Uint8Value(1) = stream.ReadUint8
mb.Uint8Value(2) = stream.ReadUint8
// have to returna uint32
return mb.Uint32Value(0)
}
private static int GetInt32(Stream stream) {
var mb as new Memoryblock(4)
mb.Uint8Value(0) = stream.ReadUint8
mb.Uint8Value(1) = stream.ReadUint8
mb.Uint8Value(2) = stream.ReadUint8
mb.Uint8Value(3) = stream.ReadUint8
// have to returna uint32
return mb.Uint32Value(0)
}
1 Like
Thanks, I’ll look into it. Next question, how can we add this as a class property: internal int[][] files;
? files() As Pair
maybe?
out of context its hard to know what the right thing would be
Its just 2 dimensional array.
I would create class for the one that represents “colums” with whatever name your data actually contains.
And then create Xojo indexer operator that indexes on that.
Then you effectively are working again on 2 dimensional thing.