合并(分割)流

unit uStream;

interface

uses
  System.SysUtils, System.Classes;

type
  TStreamSize = packed record
    size: int64;
  end;

  TStreamNum = packed record
    num: Integer;
  end;

  TStreamArray = array of TStream;

type
  TynStream = class
  private
    { Private declarations }
  public
    { Public declarations }
    class procedure MergeStream(ms: TStream; mss: TStreamArray);
    class procedure SplitStream(ms: TStream; mss: TStreamArray);
  end;

var
  ynStream: TynStream;

implementation

class procedure TynStream.MergeStream(ms: TStream; mss: TStreamArray);
var
  LSize: TStreamSize;
  LNum: TStreamNum;
  i: Integer;
begin
  ms.Position := 0;
  LNum.num := High(mss);
  ms.Write(LNum, SizeOf(Integer));  //有几个流
  for i := 0 to LNum.num - 1 do
  begin
    LSize.size := mss[i].Size;
    ms.Write(LSize, SizeOf(Int64));   // 流的大小
    ms.CopyFrom(mss[i], LSize.size);
  end;
end;

class procedure TynStream.SplitStream(ms: TStream; mss: TStreamArray);
var
  i: Integer;
  LSize: TStreamSize;
  LNum: TStreamNum;
begin
  ms.Position := 0;
  ms.Read(LNum, SizeOf(Integer)); //有几个流
  SetLength(mss, LNum.num);
  for i := 0 to LNum.num - 1 do
  begin
    ms.Read(LSize, SizeOf(Int64));   //流的大小
    mss[i] := TMemoryStream.Create;
    mss[i].CopyFrom(ms, LSize.size);
  end;
end;

end.

  

原文地址:https://www.cnblogs.com/hnxxcxg/p/11799255.html

时间: 2024-08-04 14:58:55

合并(分割)流的相关文章

JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有两个组件: 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名. 零个或更多字符串名称 的序列. 字段摘要 static String pathSeparator 与系

分割流 SequenceInputStream (转)

import java.io.*;import java.util.*; class SplitFile{ public static void main(String[] args) throws Exception { //splitFile(); merge(); } public static void splitFile()throws Exception{ FileInputStream fis = new FileInputStream("c:\\1.mp3"); Fil

hdu 3605 /状态合并最大流

题意:N个人去m个星球,给出n个人可以去哪些星球的01矩阵.求是否能满足所有人都去.(n到10万,m<=10) 一看,起先一瞬间就建图,准备秒了,人向星球连边,直接最大流判断是否为n,提交超时...是啊,10W*10=100W条边,铁定超时.. 后来经牛提示:注意,m<10!  人的可以去星球,一共最多有10个,那只有 2^10次种情况,就是说x部与Y部连线情况很多点是一样的(所给的01矩阵,最多10W行,10列,必然有很多行是一样的).所以X部只留1024个点,这些点中,点i含j个人的状态,

PDF文件怎么合并分割

在处理一些文档之类的资料时常常会遇到要将一些文档整理到一起,合成一个文件以便于管理或是发送,又或者是将一个大的文档中的部分页面拆分出来单独使用操作.若处理的是office文档倒还简单,但如果是PDF文件我们又该怎么进行合并拆分操作呢? PDF合并—— 合并分割PDF都可以用PDF转换工具来操作,首先是合并几个PDF文件.打开工具后在其他操作中选择“PDF合并”选项. 接着添加文件,将需要进行合并的PDF文件按顺序添加到列表中,可以按照顺序一个一个将文档拖到软件列表中.? 选择文件保存位置,然后点

PDF文件怎样合并分割

在平常的工作当中总会累积很多的文档数据等文件,时间久了文件就会杂乱无章,需要进行整理一番,有些相同类别文件需要合并到一起,有些文档则需要按照要求拆分开来.如果是一些office文档还好说,但如果需要处理的文件是pdf格式的,那么又该怎么去合并分割呢?合并PDF文件 准备好需要进行合并的文档,如果有文档已经打开,则先关闭打开的文档,并为这些文档进行标记,确定文档合并的顺序. 打开PDF合并软件,找到“PDF合并”选项并选择,然后按照文档合并的顺序添加文档,文档需要合并的顺序要和添加后的文件前面的编

精品 德国 软件 推荐 splitting 来自德国的免费文件合并 / 分割软件

德国是本人最敬重的国家之一,因为德国人非常注重规则和纪律,干什么都十分认真.凡是有明文规定的,德国人都会自觉遵守:凡是明确禁止的,德国人绝不会去碰它.在一些人的眼中,许多情况下,德国人近乎呆板,缺乏灵活性,甚至有点儿不通人情.但细细想来,这种"不灵活"甚为有益.没有纪律,何来秩序?没有规矩,何有认真? splitting是一款来自德国的免费文件合并 / 分割软件,内建多国语言,处理合并 / 分割的速度很快,且程序也小,不会占用计算机很大的空间 界面可以调成多国语言.

js数组常用操作方法小结(增加,删除,合并,分割等)

本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shift(); alert(theFirst);//返回1 number alert(arr);//2,3,4,5 object //删除并返回数组中最后一个元素 var theLast = arr.pop(); alert(theLast);//返回5 number alert(arr);//2,3,

PDF格式文档怎样合并分割

工作的时候天天都要处理各种文档,时间一长就累积了不少的文档需要处理,有时候需要对文档进行合并,有时候又需要对文档进行分割,普通的office文档大家都知道该怎么操作,而像pdf这类的文档在操作上就和office文档不同了.步骤—————————— 合并PDF文件是将多个pdf格式的文件按顺序合成一个pdf文件,首先打开工具,选择PDF合并选项. 把需要合并的文件添加到工具中,文件需要按照顺序进行添加,添加后的文件前面的编号就是文件合并的顺序. 添加完文件,选择好文件输出目录,然后点开始转换就可以

【daily】文件分割限速下载,及合并分割文件

说明 主要功能: 1) 分割文件, 生成下载任务; 2) 定时任务: 检索需要下载的任务, 利用多线程下载并限制下载速度; 3) 定时任务: 检索可合并的文件, 把n个文件合并为完整的文件. GitHub: https://github.com/vergilyn/SpringBootDemo 代码结构: 一.获取远程资源ContentLength.FileName 本来以为很容易, 但如果想较好的得到contentLength.fileName其实很麻烦,主要要看download-url是怎么样

php如何利用python实现对pdf文件的操作(读写、合并分割)

php如何利用python实现对pdf文件的操作 需求:在PHP里实现了把8.pdf的前4页pdf文件截取出来生成新的pdf文件. 详细步骤如下: 1. 安装python第三方库PyPDF2 前提:python必须是3.x版本以上,必要时需要升级pip3,命令如下:pip3 install --upgrade pipPyPDF 自 2010年 12月开始就不在更新了,PyPDF2 接棒 PyPDF, 在此使用PyPDF2. 安装命令:pip install PyPDF2 2.编写python脚本