Entwickler-Ecke

Open Source Units - StreamTools


TND:Ariakas - Sa 16.07.05 12:20
Titel: StreamTools
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 ;)


Delphi-Quelltext
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:
{****************************************************************************}
{                                                                            }
{                   TND Stream Tools Unit Version 0.2                        }
{                         Freeware - Have Phun :D                            }
{                                                                            }
{****************************************************************************}

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


Keldorn - Sa 16.07.05 12:33

ich will dich nicht enttäuschen, aber Delphi kann das schon selbst. Gugg dir mal Twriter und Treader an.

Mfg frank


TND:Ariakas - Sa 16.07.05 19:19

Mega LOL

Und ich hab immer nach sowas gesucht. Naja, hätte man auch selber drauf kommen können :D

Danke für den hinweis ;)