Created
December 19, 2019 16:38
-
-
Save loguntsov/43cb8bf49cb0cd6e7a2bacb15bc8eab3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defmodule Exporter do | |
require Logger | |
def filter(file_from, file_to) do | |
{ :ok, ets } = :ets.file2tab(file_from) | |
{ :ok, ets2 } = :ets.file2tab(file_from) | |
try do | |
:ets.delete_all_objects ets2 | |
codes = [ | |
:"RqCharMoveStart", :"RqCharMove", :"RqCharMoveStop" | |
] | |
result = :ets.foldl fn | |
{ _, data } = item, acc when :erlang.is_tuple(data) -> | |
opcode = Opcodes.opcode :erlang.element(3, data) | |
case :lists.member(opcode, codes) do | |
true -> | |
Logger.info("#{inspect item}") | |
[ item | acc ] | |
false -> acc | |
end | |
_, acc -> acc | |
end, [], ets | |
Logger.info("Result: #{inspect result}") | |
:ets.insert ets2, result | |
:ets.tab2file ets2, file_to | |
after | |
:ets.delete ets | |
:ets.delete ets2 | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment