Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Erlang如何从该二进制文件创建列表<<&引用;a、 b、c“&燃气轮机&燃气轮机;_String_List_Binary_Erlang - Fatal编程技术网

String Erlang如何从该二进制文件创建列表<<&引用;a、 b、c“&燃气轮机&燃气轮机;

String Erlang如何从该二进制文件创建列表<<&引用;a、 b、c“&燃气轮机&燃气轮机;,string,list,binary,erlang,String,List,Binary,Erlang,我有一个二进制文件,我想从这个二进制文件中提取信息 所以我想要像A=A,B=B这样的东西。 我需要一个通用的方法,因为二进制字符串总是变化的 所以它可能是 我试图生成一个列表 erlang:binary_to_list(<<"a","b","c">>) 谢谢你。你确实使用了正确的方法 返回与二进制字节相对应的整数列表 Erlang中没有字符串类型:。如果所有元素都在可打印的ASCII范围内,控制台只是出于礼貌以字符串表示形式显示列表 您应该阅读Erlang的文档以了

我有一个二进制文件
,我想从这个二进制文件中提取信息

所以我想要像
A=A,B=B
这样的东西。 我需要一个通用的方法,因为二进制字符串总是变化的

所以它可能是

我试图生成一个列表

erlang:binary_to_list(<<"a","b","c">>) 

谢谢你。

你确实使用了正确的方法

返回与二进制字节相对应的整数列表

Erlang中没有字符串类型:。如果所有元素都在可打印的ASCII范围内,控制台只是出于礼貌以字符串表示形式显示列表

您应该阅读Erlang的文档以了解如何使用二进制文件

如果列表表示中不需要整个二进制文件,请不要将其转换为列表

要提取可以使用的前三个字节

<<A, B, C, Rest/binary>> = <<"aaa","bbb","ccc">>.
<在Erlang的“代码点列表”格式中,您可以使用:

test(<<A/utf8, Tail/binary>>, Accu) -> test(Tail, [A|Accu]);
test(_, Accu) -> lists:reverse(Accu).

[97,97,97,600,99,99,99] = test(<<"aaa", 16#0258/utf8, "ccc">>, "").
test(,Accu)->test(Tail,[A | Accu]);
测试(累计)->列表:反向(累计)。
[97,97,97600,99,99,99]=测试(,“”)。

(请注意,
`=
。实际上不要使用最后一个被剪掉的代码,而是使用链接方法。)

谢谢您的时间,问题是我确实需要二进制的列表表示。我想从二进制文件中构建类似于这个结构的东西[{user,andreas},{address,germany}]。我永远不知道为了得到第一个术语{user,adreas},id必须提取多少字节。我想我可以使用一个二进制文件,将这个二进制文件转换成一个列表,这样我就可以从二进制文件中获取信息。你想在给定的令牌上拆分二进制数据吗?我在尝试了该解决方案,但这并不是解决问题的好方法,因为我必须禁止在我的应用程序中使用特殊令牌。否则,您将如何分隔
中的字段?逗号实际上不会出现在二进制文件中。但是我想说0是一个相当安全的字符,用于…分隔文本数据…好的,我所做的是
二进制:拆分(,[],[global])。
因此我得到
[,]
<< <<(F(X))>> || <<X>> <= <<"aaa","bbb","ccc">> >>.
test(<<A, Tail/binary>>, Accu) -> test(Tail, Accu+A);
test(_, Accu) -> Accu.

882 = test(<<"aaa","bbb","ccc">>, 0).
test(<<A/utf8, Tail/binary>>, Accu) -> test(Tail, [A|Accu]);
test(_, Accu) -> lists:reverse(Accu).

[97,97,97,600,99,99,99] = test(<<"aaa", 16#0258/utf8, "ccc">>, "").