Tachen!
Tja is nix grosses aber es macht den code erheblich schlanker. Da ich vor ein paar monaten viel mit Streams gearbietet habe, hatte ich mit fix ne kleine Unit namens TNDStreamTools gebastelt, um nicht immer wieder die gleichen vorgänge 20000 mal zu schrieben
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74:
|
unit TNDStreamTools;
interface
uses Classes;
procedure WriteStream( Value : integer; S: TStream ); overload; procedure WriteStream( Value : Int64; S : TStream ); overload; procedure WriteStream( Value : string; S : TStream ); overload;
function ReadInteger( S : TStream ) : Integer; function ReadInt64( S : TStream ) : Int64; function ReadString( S : TStream ) : string;
implementation
procedure WriteStream( Value : integer; S : TStream ); begin S.Write( Value, SizeOf( Integer ) ); end;
procedure WriteStream( Value : Int64; S : TStream ); begin S.Write( Value, SizeOf( Int64 ) ); end;
procedure WriteStream( Value : string; S : TStream ); var len : integer; begin len := Length( Value ); S.Write( len, SizeOf( Integer ) ); S.Write( Value[1], len ); end;
function ReadInteger( S : TStream ) : integer; var res : integer; begin S.Read( Res, SizeOf( Integer ) );
Result := Res; end;
function ReadInt64( S : TStream ) : Int64; var res : Int64; begin S.Read( Res, SizeOf( Int64 ) );
Result := Res; end;
function ReadString( S : TStream ) : string; var len : integer; res : string; begin S.Read( len, SizeOf( integer ) ); SetLength( res, len ); S.Read( res[1], len );
Result := Res; end;
end. |
Wie die einzelnen Funtionen zu benutzten sind, erklärt sich wohl selbst. Macht damit was ihr wollt, wer sie erweitern möchte, solls gerne tun.
Greatz Ari