Autor Beitrag
TND:Ariakas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 18

WinXP, Debian
D7 PE, MS VS 2k5 (Just for C/C++/C#)
BeitragVerfasst: Sa 16.07.05 12:20 
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 ;)

ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
TND:Ariakas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 18

WinXP, Debian
D7 PE, MS VS 2k5 (Just for C/C++/C#)
BeitragVerfasst: 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 ;)