• 曾经对 TMemoryStream.Memory 错误的理解



    TMemoryStream 的 Position 变化后, 我曾经认为它的 Memory 属性也会变化; 只怪不看源码, 只想当然!

    procedure TForm1.FormCreate(Sender: TObject);
    var
      Stream1,Stream2: TMemoryStream;
      pw: TPtrWrapper;
    begin
      Stream1 := TStringStream.Create('1234567890');
      Stream2 := TStringStream.Create('ABCDEFGHIJ');
    
      //想把 Stream1 变成 123DEFG890
      pw := TPtrWrapper.Create(Stream2.Memory);
      pw := TPtrWrapper.Create(pw.ToInteger + 3);
    
      Stream1.Position := 3;
      Stream1.Write(pw.ToPointer^, 4);
    
      ShowMessage(TStringStream(Stream1).DataString); //123DEFG890
    
      Stream1.Free;
      Stream2.Free;
    end;
    

  • 相关阅读:
    内联汇编的使用
    metamask注记词
    一个简单的增删改查合约
    企业邮箱账号
    压缩包管理
    设计模式
    软硬链接ln
    文件IO-Linux
    静态库和动态库
    gdb调试
  • 原文地址:https://www.cnblogs.com/del/p/3130642.html
Copyright © 2020-2023  润新知