TC官方合作论坛

 找回密码
 立即注册
查看: 1942|回复: 4

[已解决] 请教大佬,TC中怎么处理二进制字节流

[复制链接]
发表于 2021-7-10 15:13:47 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 fhjym 于 2021-7-10 15:15 编辑

//请教大佬,二进制字节流用什么变量能保存,或者怎么转成二进制字符串流?确实是搜遍了各种网站都找不到,无奈发帖,谢谢大家了。
//TC7.0版本的,代码如下,看了论坛中好多大佬的帖子弄的,可是字节流没法保存到变量中,请大佬改改代码,TC中如何用一个变量保存输出的二进制字符串流,或者如何直接操作字符串?
//我想要读取D盘下1.bmp的图片文件,变成二进制字符串输出,所有帖子内容覆盖复制进TC7.0新建的空白项目就可以调试了,谢谢各位帮助

var hThread

function bbb()
    var 数据流
    var 本地存放路径="D:/1.bmp"
    数据流=com("ADODB.Stream")
    数据流.Type=1 //1为二进制,2为文本
    数据流.Mode=3 //读写模式
    //数据流.Charset = "UTF-8"
    数据流.Open()
    数据流.LoadFromFile(本地存放路径)
    数据流.Type = 2

    //数据流.Size()//等于图片字节数
    var a=数据流.ReadText()

    调试输出(a)
end

//function aaa(a)
//    var RS = com("ADODB.Recordset")

//    RS.Fields.Append "mBinary","201"
//    RS.Open
//    RS.AddNew
//    RS("mBinary").AppendChunk(a)
//    RS.Update
//    var RSBinaryToString = RS("mBinary")
//    调试输出(RSBinaryToString)
//end


function encodeURI(str)
    var ScriptContorl=com("MSScriptControl.ScriptControl")
    ScriptContorl.AllowUI = true
    ScriptContorl.Language = "JavaScript"
    ScriptContorl.AddCode("function add(s1){return encodeURI(s1);}")
    var ret=ScriptContorl.Run("add",str)
    ScriptContorl=null
    return ret
end


功能 启动_热键()
    var bool = 线程获取状态(hThread)
    if(bool == 0)
        hThread = 线程开启("执行", "")
    end
结束

功能 终止_热键()
    线程关闭(hThread)
结束

功能 执行()
    //创建快捷方式()
    //    变量 vbs = 插件("MSScriptControl.ScriptControl")
    //    vbs.Language = "VBScript"
    //    变量 aaa = vbs.Eval("2*3+8")
    //    消息框(aaa)
    //aaa(file)
    bbb()
结束
回复

使用道具 举报

发表于 2021-7-11 04:39:12 | 显示全部楼层
本帖最后由 bestkakkoii 于 2021-7-11 04:44 编辑

个人也在这块苦恼了很久
最后用VB调用才实现,但效率很差,最后硬去学了C++写插件效果差很多
C**t 不知道為啥被*掉了    C     o      n   s    t
  1. function ReadBinary(FilePath)
  2.         var Code = "Function ReadBinary(FileName):"
  3.         Code = Code & "C**t adTypeBinary = 1:"
  4.         Code = Code & "Dim stream, xmldom, node:"
  5.         Code = Code & "Set xmldom = CreateObject("Microsoft.XMLDOM"):"
  6.         Code = Code & "Set node = xmldom.CreateElement("binary"):"
  7.         Code = Code & "node.DataType = "bin.hex":"
  8.         Code = Code & "Set stream = CreateObject("ADODB.Stream"):"
  9.         Code = Code & "stream.Type = adTypeBinary:"
  10.         Code = Code & "stream.Open:"
  11.         Code = Code & "stream.LoadFromFile FileName:"
  12.         Code = Code & "node.NodeTypedValue = stream.Read():"
  13.         Code = Code & "stream.Close:"
  14.         Code = Code & "Set stream = Nothing:"
  15.         Code = Code & "ReadBinary = node.Text:"
  16.         Code = Code & "Set node = Nothing:"
  17.         Code = Code & "Set xmldom = Nothing:"
  18.         Code = Code & "End Function"
  19.         var ss = com("ScriptControl")
  20.         ss.Language = "VBScript"
  21.         ss.AddCode(Code)
  22.         var Result = ss.Run("ReadBinary", FilePath)
  23.         return Result
  24. end
复制代码


C++直接
pFileIn = fopen(path, "rb");
fread(Buffer, Size, Count, pFileIn);



回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-11 08:28:48 | 显示全部楼层
本帖最后由 fhjym 于 2021-7-11 08:30 编辑
bestkakkoii 发表于 2021-7-11 04:39
个人也在这块苦恼了很久
最后用VB调用才实现,但效率很差,最后硬去学了C++写插件效果差很多
C**t 不知道為 ...

谢谢大佬,原来是这样调用vbs语句的返回值,谢谢,我直接复制粘贴,引号里的引号我加个\转义就可以运行了,C++语句我还没有下载编译器不会使
回复 支持 反对

使用道具 举报

发表于 2021-7-14 09:16:16 | 显示全部楼层
base64
回复

使用道具 举报

发表于 2023-8-6 06:34:54 | 显示全部楼层
bestkakkoii 发表于 2021-7-11 04:39
个人也在这块苦恼了很久
最后用VB调用才实现,但效率很差,最后硬去学了C++写插件效果差很多
C**t 不知道為 ...

大哥最后有制作DLL吗?把二进制流文件转换成文件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-3-29 11:40 , Processed in 0.037916 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表