Re: starter trying to figure out a binary pattern match
Nalin Ranjan <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CACE+zkKMJurB2cLmD_whjw0z5X5okGuEW2iObXRpZmcxZD37_Q@mail.gmail.com> |
If you prefer chatting, there is a link to get a slack <https://erlef.org/slack-invite/erlanger> invitation under the community <https://www.erlang.org/community> section of erlang.org. Thanks and Regards Nalin Ranjan On Thu, Oct 21, 2021 at 9:37 AM Felipe Vieira <[email protected]> wrote: > 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? >