微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将字符串传递给可以在以后创建二进制文件的函数?

如何解决如何将字符串传递给可以在以后创建二进制文件的函数?

| 这是我的函数,当我调用my_conv(\“ 2312144 \”,10,10)时,它给我“错误参数”错误
my_conv(S,Start,End) ->
  Res = <<Start:8,End:8,S:1024>>.
    

解决方法

未经转换,不能在二进制表达式内使用字符串。您需要使用
list_to_binary(S)
将字符串转换为二进制。 我建议使用以下表达式:
my_conv(S,Start,End) ->
    list_to_binary(<<Start:8,End:8>>,S]).
(请注意,“ 3”实际上接受一个深层的IO列表,而不仅仅是一个纯字符串)。 如果打算将二进制文件填充为1024字节(或1040(包括换行符)),则可以在以后执行此操作:
my_conv(S,End) ->
    pad(1040,list_to_binary(<<Start:8,S])).

pad(Width,Binary) ->
    case Width = byte_size(Binary) of
        N when N =< 0 -> Binary;
        N -> <<Binary/binary,0:(N*8)>>
    end.
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。