• mormot2 TRawByteStringStream


    mormot2 TRawByteStringStream

    mormot.core.base.pas

      /// TStream using a RawByteString as internal storage
      // - default TStringStream uses WideChars since Delphi 2009, so it is
      // not compatible with previous versions, and it does make sense to
      // work with RawByteString/RawUTF8 in our UTF-8 oriented framework
      // - just like TStringStream, is designed for appending data, not modifying
      // in-place, as requested e.g. by TTextWriter or TBufferWriter classes
      TRawByteStringStream = class(TStream)
      protected
        fPosition: integer;
        fDataString: RawByteString;
        {$ifdef FPC}
        function GetPosition: Int64; override;
        {$endif FPC}
        function  GetSize: Int64; override;
        procedure SetSize(NewSize: Longint); override;
      public
        /// initialize a void storage
        constructor Create; overload;
        /// initialize the storage, optionally with some RawByteString content
        constructor Create(const aString: RawByteString); overload;
        /// read some bytes from the internal storage
        // - returns the number of bytes filled into Buffer (<=Count)
        function Read(var Buffer; Count: Longint): Longint; override;
        /// change the current Read/Write position, within current stored range
        function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
        /// change the current Read/Write position, within current stored range
        function Seek(Offset: Longint; Origin: Word): Longint; override;
        /// append some data to the buffer
        // - will resize the buffer, i.e. will replace the end of the string from
        // the current position with the supplied data
        function Write(const Buffer; Count: Longint): Longint; override;
        /// retrieve the stored content from a given position, as UTF-8 text
        procedure GetAsText(StartPos, Len: PtrInt; var Text: RawUTF8);
        /// direct low-level access to the internal RawByteString storage
        property DataString: RawByteString
          read fDataString write fDataString;
      end;
    

      

  • 相关阅读:
    openjudge 2750
    hexo部署云服务器
    freemaker传输数据问题
    FormData在axios中的骚操作
    Docker安装与初次使用
    docker-compose实现前后端分离的自动化部署
    centos7下设置静态ip
    centos7 安装mariadb 并配置主从复制
    centos7安装solr服务
    centos7安装redis
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/14055758.html
Copyright © 2020-2023  润新知