如何解决如何将字符串传递给可以在以后创建二进制文件的函数?
| 这是我的函数,当我调用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 举报,一经查实,本站将立刻删除。