Re: starter trying to figure out a binary pattern match
Magnus Leone <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CABz=PzOPvFXSwvH4HYD4apw3B1AQ3Xnt3Q5kHWA5VVK1-TZZug@mail.gmail.com> |
I made a cheat sheet for binaries that you may find useful: https://cheatography.com/fylke/cheat-sheets/erlang-binaries/ Improvement suggestions welcome! Regards, Magnus On Thu, Oct 21, 2021 at 9:21 AM Nalin Ranjan <[email protected]> wrote: > 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? >> >