Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Stream String lesen und schreiben

  Alt 1. Okt 2023, 17:08
Vielen Dank allen.

Ich war der Meinung, Emba hätte das mal einheitlich umgesetzt und eine generische Compilermagie eingebaut.
Na ja...

Ich habe mir jetzt eine kleine Unit gebaut, die den MemoryStream um zwei Funktionen erweitert.

Dazu einfach in allen Units, die die Streamfunktionalität brauchen, die Unit nach der SystemClasses einbinden:
(Ich vergesse immer wieder, die diese Klassen-Ersetzung heißt. )

Lieber Wäre mir zwar, WriteData<String>() und ReadData<String>() zu erweitern (um einfach immer diese Methoden nutzen zu können) aber habe keine Ahnung, ob das umsetzbar und dann auch stabil wäre...
Mit dem Workaround hier kann ich aber schon ganz gut leben.


Delphi-Quellcode:
unit MyUnit;

interface

  uses

    System.Classes, MyMemoryStream, // <----------------
    Generics.Collections, System.SyncObjs,
    Winapi.MMSystem;

  type


Delphi-Quellcode:
unit MyMemoryStream;

interface

  uses

    System.Classes;

  type

    TMemoryStream = class(System.Classes.TMemoryStream)
    public
      procedure ReadString(var aString: String);
      procedure WriteString(const aString: String);
    end;

implementation

  {: ************************************* TMemoryStream ************************************ :}

  {: ---------------------------------------- public ---------------------------------------- :}

  procedure TMemoryStream.ReadString(var aString: String);
  var
    Reader: TBinaryReader;
  begin
    Reader := TBinaryReader.Create(Self);
    try
      aString := Reader.ReadString;
    finally
      Reader.Free;
    end;
  end;

  procedure TMemoryStream.WriteString(const aString: String);
  var
    Writer: TBinaryWriter;
  begin
    Writer := TBinaryWriter.Create(Self);
    try
      Writer.Write(aString);
    finally
      Writer.Free;
    end;
  end;

end.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat