一、本文功能需要两个程序:

1、被写入图片的exe,启动后读取自身尾部图片数据并显示。

2、执行写入操作的exe,往被写入exe尾部添加图片数据。

二、被写入端代码:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="被写入端";right=489;bottom=319)
mainForm.add(
plus={cls="plus";left=10;top=10;right=480;bottom=310;edge=1;z=1}
)
/*}}*/mainForm.show();
import fsys.file
var file = fsys.file(io._exepath,"r"); // 打开文件自身file.seek("end",-4);
var flag = file.read(-1); // 读取追加标记,
if flag == "APND" { // 如果末尾不是"APND"则代表未被追加file.seek("end",-8);var len = file.read({int number}).number; // 读取追加的数据长度if len {file.seek("end",-8-len)var pic = file.read(len); // 读取追加的数据mainForm.plus.foreground = pic; //显示数据}
}
file.close(); // 关闭文件句柄
return win.loopMessage();

被写入前运行效果:

被写入后运行效果:

三、写入端代码:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="追加图片";right=757;bottom=467)
mainForm.add(
button={cls="button";text="选择图片";left=470;top=80;right=700;bottom=170;z=2};
button2={cls="button";text="追加到文件尾部";left=470;top=230;right=700;bottom=320;z=3};
plus={cls="plus";left=60;top=40;right=430;bottom=350;z=1}
)
/*}}*/var picfile;
mainForm.button.oncommand = function(id,event){import fsys.dlgpicfile = fsys.dlg.open("*.*","请选择图片文件")mainForm.plus.foreground = picfile;
}
mainForm.button2.oncommand = function(id,event){if !picfile return win.msgbox("先选图片");import fsys.dlgvar exefile = fsys.dlg.open("*.exe|*.exe","请选择exe文件");if exefile {var pic = ..string.load(picfile);import fsys.file;var file = fsys.file(exefile,"a+");file.seek("end");file.write(pic);//图片数据file.writeBuffer(raw.buffer({int v=#pic})); //数据长度file.write("APND"); //被追加标记file.close();win.msgbox("写入完毕,将运行目标exe文件");import processprocess(exefile);}
}
mainForm.show();
return win.loopMessage();

四、流程:

1、编译“被写入端”为exe文件,暂且命名为“被写入端.exe”

2、运行写入端,选择要追加的图片:

3、点击“追加到文件尾部”,选择“被写入端.exe”完成追加。

五、其他:

1、可多次追加,多次读取。感兴趣的可自己进行改造。

2、可对追加数据进行加密、解密操作。

aardio - 文件尾部追加图片相关推荐

  1. java在文件尾部写文件_Java在文件尾部追加内容

    import java.io.FileWriter; import java.io.IOException; import java.io.RandomAccessFile; /** * 将内容追加到 ...

  2. Java多种方式读文件,追加文件内容,等对文件的各种操作

    一.多种方式读文件内容.1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 import java.io.BufferedReader;import java. ...

  3. Linux 命令之 tail -- 在屏幕上显示指定文件的末尾若干行/显示文件尾部内容/查看文件尾部内容

    文章目录 一.命令介绍 二.常用选项 三.参考示例 (一)显示文件 file 的最后 10 行 (二)显示文件 file 的内容,从第 20 行至文件末尾 (三)显示文件file的最后10个字符 (四 ...

  4. linux中的head 显示文件头部内容、tail 输出文件尾部内容

    1.2.14 head 显示文件头部内容 head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容 head 文件 (功能描述:查看文件头10行内容) head -n ...

  5. Linux基础命令----tail 查看文件尾部内容

    描述 tail命令用于输入文件中的尾部内容 tail命令默认在屏幕上显示指定文件的末尾10行 如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题 例如:==> head-help.t ...

  6. tail命令 – 查看文件尾部内容

    tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行.如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题.如果没有指定文件或者文件名为"-",则读取标准 ...

  7. 文件IO实现图片的加密操作

    目录 1.什么是文件IO 2.什么是文件描述符 3.文件相关系统调用函数 (1)打开关闭文件 文件打开open(): 文件关闭close() (2)读写文件 读文件read() 写文件write() ...

  8. 本地markdown文件自动生成|图片批量压缩并转base64格式|告别图床服务器|博文神器

    一.项目简介 问题来源 每次本地写好markdown格式的文档后,想要将它上传到博客网站上,但是本地的图片无法直接复制到网站的博客页面,每个图片需要重新点击上传,然后上传本地文件.其实也可以买一个图床 ...

  9. java 批量写入文件_Java批量写入文件和下载图片的示例代码

    很久没有在WhitMe上写日记了,因为觉着在App上写私密日记的话肯定是不安全的,但是想把日记存下来.,然后看到有导出日记的功能,就把日记导出了(还好可以直接导出,不然就麻烦点).导出的是一个html ...

最新文章

  1. 给 Windows 驱动程序安装提速
  2. python字符串命名_从输入字符串到命名复制python 2.7
  3. 通过apt自动生成建造者模式单线程版代码(三)
  4. jenkins报错Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password) 的处理
  5. SpringMVC Controller单例和多例
  6. C++的inline函数
  7. 【转载】索引的一些总结
  8. 数据接口的登录态校验以及JWT
  9. java公寓管理系统设计与实现_宿舍管理系统设计与实现
  10. 【Linux】vi编辑器命令
  11. 计算机组成原理随笔(一)
  12. 三星Galaxy S11+电池谍照曝光:5000mAh超大容量 5G 不虚
  13. python绘制小猪佩奇
  14. ABBYY Lingvo European for Mac(万能词典)
  15. vscode remote 离线环境搭建
  16. 系统安全性分析与设计
  17. 推荐一款HTML在线编辑器
  18. 微信小程序注册流程图文详解
  19. 数据嗨客 | 第6期:不平衡数据处理
  20. SLAM④----李群与李代数

热门文章

  1. 基于springboot的社区养老系统(养老院)
  2. 腾讯微博平台开发,熟悉API结构,获得头像本地保存
  3. 打开chm手册显示已取消到该网页的导航 chm打开无内容 提示重新键入地址
  4. 基于matlab和FFT算法实现信号频谱分析
  5. 阿里P7 java架构师 springcloud、jvm、netty 、redis、数据结构、分布式高并发 视频 下载分享
  6. 如何在不插电源合盖的情况下,让mac book pro连接显示器键盘持续使用
  7. 全面详细介绍Linux 虚拟文件系统(VFS)原理
  8. hx711基准电压_hx711基本原理讲解
  9. java面向对象 程序设计题_java面向对象程序设计练习题
  10. SpringMVC全局乱码过滤器、注解@RequestParam、自定义类型转换器