System.SysUtils

一、TStringStream方法

Strem>String

TMemoryStream to String

stm: TStream;

ss: TStringStream;

#include "System.SysUtils.hpp"

DataString

image.picture.savetoStream(stm);

ss := TStringStream.Create('', TEncoding.Unicode);

ss.CopyFrom(stm, 0);
str := ss.DataString;

stm.Free;
ss.Free;

String>Strem

stm: TStream;
ss: TStringStream;

stm := TMemoryStream.Create;
ss := TStringStream.Create('', TEncoding.Unicode);

ss.WriteString(str);

ss.Position := 0;

stm.CopyFrom(ss, ss.Size);

stm.Position := 0;

二、TBytes和stringof转换

Strem>String

abyte: TBytes;

SetLength(abyte, stm.Size);
stm.Read(abyte, stm.Size);
str := stringof(abyte);

String>Strem

abyte := BytesOf(gstr);
stm.Write(abyte, Length(abyte));

stm.Position := 0;
img.picture.LoadFromStream(stm);

function BytesOf(const Val: UnicodeString): TBytes;
begin
Result := TEncoding.Default.GetBytes(Val);
end;

function StringOf(const Bytes: TBytes): UnicodeString;
begin
if Assigned(Bytes) then
Result := TEncoding.Default.GetString(Bytes, Low(Bytes), High(Bytes) + 1)
else
Result := '';
end;

Strem String Memory TStringStream的更多相关文章

  1. 代码演示C#中string和StingBuilder内存中的区别

    关于 string和StringBuilder的区别参考MSDN.本文用程序演示它们在内存中的区别,及其因此其行为不同. //Demo  string memory model namespace C ...

  2. 【原创】大数据基础之Spark(2)Spark on Yarn:container memory allocation容器内存分配

    spark 2.1.1 最近spark任务(spark on yarn)有一个报错 Diagnostics: Container [pid=5901,containerID=container_154 ...

  3. solidity数据位置-memory,storage和calldata

    有三种类型,memory,storage和calldata,一般只有外部函数的参数(不包括返回参数)被强制指定为calldata.这种数据位置是只读的,不会持久化到区块链 storage存储或memo ...

  4. solidity中的memory和 storage详解

    Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上.这里我会讲解一下关键字storage和memory的区别. storage的结构是在合约部署创建时,根据你的合约中状 ...

  5. C++ TUTORIAL - MEMORY ALLOCATION - 2016

    http://www.bogotobogo.com/cplusplus/memoryallocation.php Variables and Memory Variables represent st ...

  6. 理解Docker(4):Docker 容器使用 cgroups 限制资源使用

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  7. sysbench 压力测试

    200 ? "200px" : this.width)!important;} --> 介绍 sysbench是一个模块化.跨平台.多线程基准测试工具,主要用于测试不同系统参 ...

  8. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  9. sysbench的安装与使用(with MySQL)

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试. 项目主页: http://sysbench.sourceforge.net/ 安装文档htt ...

随机推荐

  1. 如何让Beamer的logo放在右上角

    # 位置需要导入包```\usepackage{beamerfoils}\usepackage{tikz}\usepackage{pgf}\MyLogo{%%\includegraphics[heig ...

  2. cocos studio pageview看不到indicator指示点

    发现如果在cocos studio里操作给PageView创建页面元素时,即使setIndicatorEnabled为true也看到下方的指示点,必须调用addWidgetToPage或者insert ...

  3. JSON和JSONP简单总结

    jsonp和json的区别,原理,在jquery中的使用 http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.h ...

  4. UI 设计中的视觉无障碍设计

    我给博客改了主题色,从 这样的 改成了 这样的:然而我问小伙伴看看效果他却并没有发现改变. 红绿色盲在亚洲人中占比,男性约 5%,女性则小得多.也就是说,就算仅考虑为国内用户开发应用,这也是很大的一部 ...

  5. 关于altera fpga的io时序优化问题

    chip planner中一个io的结构如下图所示 其中左边是输出部分右边是输入部分,但是会注意到两个结构:1,寄存器,2,delay模块 以下是我的推测:这两个结构是为了做时序优化时用的,在alte ...

  6. winform 多线程中ShowDialog()无效的解决办法

    在使用Winform开发的过程,不可避免的要使用多线程,其中会在多线程中会调用窗口的ShowDialog方法,但实际上并不是模式窗口. private void Form1_Load(object s ...

  7. Google服务,你都用了多少?

    今天无意中发现这些东西,Google提供的服务还真是多,大家经常用到的不知道有哪些呢?就我个人而言,经常用到的就是Google搜索,Gmail邮箱,还有Google论坛了. Google Ad Sen ...

  8. Docker的主要组件

    Docker 的主要组件 安装 docker ,其实是安装了 docker 客户端.dockerd 等一系列的组件,其中比较重要的有下面几个. Docker CLI(docker)docker 程序是 ...

  9. vim删除空行和注释

    vim删除空行和注释 来源:  http://jpuyy.com/2015/06/vim-delete-lines-using-regexp.html 删除空行 :g/^$/d 删除空行以及只有空格的 ...

  10. easyui datagrid 基础方法和事件

    数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数据表格列配置对象,查看列属性以获取更多细节 ...