starter trying to figure out a binary pattern match

Felipe Vieira <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CAMZ6u3tQZJ6snmNdUDvSQedAVEoPrQnvip9Cc4j9KSXmzbWLsw@mail.gmail.com>
Hey folks, I have just started learning Erlang and I'm loving it.

I'm going through Armstrong's "Programming Erlang" and I'm trying to build
on "Reading MP3 Metadata".

He patter matches with:

```
parse_v1_tag(<<$T,$A,$G, Title:30/binary, Artist:30/binary, ⋯
```

I tried the following (and variations):

1.

```
-define(ID3V2_HEADER, "TAG").
⋯
is_id3v2(<<?ID3V2_HEADER, Tag:(128 - byte_size(?ID3V2_HEADER))/binary>>) ->
```

2.

```
-define(ID3V2_HEADER, <<"TAG":3/binary>>).
⋯
is_id3v2(<<?ID3V2_HEADER, Tag:(128 - byte_size(?ID3V2_HEADER))/binary>>) ->
```

And I'm trying to achieve a match like this (which also does not work, but
states more clearly my intentions):

```
<<"TAG">> ++ <<X>> = <<84,65,71,73,86,46,32,87,46>>.
```

Is there a way to achieve this together with the `128 -
byte_size(?ID3V2_HEADER))/binary>>` calculation?

Best,

PS: is there a more informal/chat-like place to ask these kinds of
questions?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.