Portal SAMP
[Include] pawn-binary-storage - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Lançamentos (https://portalsamp.com/forumdisplay.php?fid=26)
+---- Fórum: Includes (https://portalsamp.com/forumdisplay.php?fid=27)
+---- Tópico: [Include] pawn-binary-storage (/showthread.php?tid=5163)



pawn-binary-storage - Mateus Lima - 03/01/2026

? pawn-binary-storage

Este include foi criado estritamente para fins de estudo, com foco em manipulação de arquivos binários e comportamento de memória dinâmica na linguagem Pawn.
Não foi desenvolvido com a intenção de ser um sistema de gerenciamento de dados seguro, completo ou pronto para produção. Podem existir limitações, comportamentos indefinidos e casos não tratados.

⚠️ Aviso importante
Citar:ATENÇÃO
Este include requer um tamanho maior de memória dinâmica, devido ao uso intensivo de buffers em tempo de execução, strings e manipulação de dados binários.
Antes de utilizar a biblioteca, é obrigatório definir no script:
Código:
#pragma dynamic 65536
Sem isso, o funcionamento correto não é garantido.

? Funções disponíveis
Código:
BIN::Open(const file[])
BIN::Save()
BIN::WriteFloat(key[], Float:value)
BIN::WriteInt(key[], value)
BIN::WriteString(key[], value[])
BIN::BinKeyExists(const key[])
BIN::GetKeyValue(key[])
BIN::GetKeyValueEx(const k[], v[], m = sizeof(v))
BIN::AddKeyValue(const key[], const value[])
BIN::AppendRaw(const buffer[], size)
BIN::ReplaceKeyValue(key[], value[])
BIN::WriteFile(const string[], filemode:mode = io_write)
BIN::ParserBIN(binary[], key[], value[])
BIN::Parser(text[], key[], value[])
BIN::IsBinary(const str[])
BIN::GetCharCountFromBin(const bin[])
BIN::ConvertStr(s[], o[], m = sizeof(o))
BIN::BinStr(const b[], s[], max = sizeof(s))

? Exemplo de uso
Código:
#include <a_samp>
#include <binary>

main(){}

public OnGameModeInit(){
    BIN::Open("dados.bin");

    BIN::WriteString("creator", "mateus-bsod");
    printf("creator = %s", BIN::GetKeyValue("creator"));

    BIN::WriteString("creator", "mateus-delicia");
    printf("creator = %s", BIN::GetKeyValue("creator"));

    BIN::Save();
    return 1;
}

https://github.com/mateus-bsod/pawn-binary-storage

- é tipo um DOF2 só que usa binario kkkkkkkkkkkkk