Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Seg 15 Jul 2013, 17:08
SXT lib
leitor de valores em arquivos (Table-key-values)
reader of values in files (Table-key-values)

csxt é uma classe programada em c++, te dando a facilitação de leitura de dados em arquivos


  • Constructor

Código:
nib::csxt<class t = std::string>(const std::string & filename, int openmode)
por padrão, t é iniciado como string, mas obviamente você pode trocar por qualquer type.
t é o tipo de valor contido no arquivo, pode ser int, float, string etc, Que também será o tipo de retorno para ti.

openmode é a maneira de input/output que você irá fazer. Modos: open, create.
exemplo:
Código:
csxt<int> stream("test.sxt", csxt<>::create ); // você criou um arquivo.

  • Estrutuda de dados

sua estrutura é bem simples:
Código:
#sxt/file

<TABLE>
key value
key2 value 2
AAA texto a ser retornado

<TESTE>
other_key valor etc pato anda
baralho carros que capotam
key valor de pato
O arquivo SXT deve conter o cabeçário: #sxt/file, caso contrário, o arquivo não será reconhecido.
Se você usar outro type para carregar o arquivo, não poderá colocar textos, pois irá falhar o retorno.
explicarei a seguir.


  • Uso

Código:
#include "sxt.hpp"
using nib::csxt;

int main(int i, char *argv[])
{
    csxt<> stream("test.sxt", csxt<>::create); // cria um arquivo
    stream["TABLE"]["new_key"] = "new value"; // acessa a table "TABLE", cria uma nova key e atribue um valor.
}
o arquivo ficaria assim:
Código:
<TABLE>
new_key new value
Você pode usar um \ (barra invertido) para incluir caracteres que não são lidos pelo programa, como uma quebra de linha ou espaços no nome da Key.
Exemplo:
Código:
<TABLE> // em Tabelas, o uso do espaço é permitido
Key\ Name Olá, mundo!\
Quebra de linha será contida na "Key Name".


  • Métodos

parse(const std::string & fname, int openmode)
parse (como o nome já diz) analisa um arquivo. Este método é chamado no constructor.
Código:
stream.parse("test.sxt", csxt<>::open);
save(void)
save (como o nome já diz) salva o conteúdo em um arquivo. O output será de acordo com o modo que você usou para i/o.
Código:
csxt<int> stream("f.sxt", csxt<>::create);
stream["cars"]["number_of_cars_to_be_spawned"] = 5;
stream.save(); // salva o conteúdo de acordo com a sintaxe da estrutura
perceba que, iniciei a classe com o tipo int, nesse caso, o valor a ser retornado/salvado será do tipo integer.


  • Uso em for-each

csxt pode ser usado normalmente em for eachs, como vectors, strings e etc
Código:
for( auto & next : stream) // o foreach vai percorrer todas as tables
{
      std::cout << next["teste"] << std::endl; // procura a key "teste" na table atual e imprime na tela, caso não houver, "teste" será criada com valor nulo.
}

  • Exceptions

csxt usa uma classe para tratar erros, herançada de std::exception.
Código:
try {
   csxt<> stream("file.sxt", csxt<>::open);
} catch( const csxt<>::exception & ex) {
  std::cout << ex.what() << std::endl; // caso houver uma exception, possívelmente será de não ter encontrado o arquivo "file.sxt" ou o arquivo pode estar corrompido
}
está bem simples, porém muito útil.

download csxt lib


Última edição por Thelost em Ter 11 Fev 2014, 17:17, editado 6 vez(es)
LINK/2012
Programador - Avançado
Programador - Avançado
Mensagens : 7652
Reputação : 349
Desde : 03/05/2012
Ver perfil do usuário
em Seg 15 Jul 2013, 17:17
Parece FXT agora

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

SXT lib (nib::csxt) 2ywzqdu
-W4nted
Veterano
Veterano
Nick anterior : Vicio_Explosivo
Título : Tryhard
Mensagens : 4275
Reputação : 35
Desde : 07/12/2012
Idade : 19
Localização : Itanhaém - SP
Ver perfil do usuário
em Seg 15 Jul 2013, 17:20

"está bem simples, porém muito útil."
pra mim isso ai é russo misturado com chines...

______________________________
https://www.youtube.com/channel/UCzG3lLzKBpPDdhWpQbUyMpg
Meu PC:
Video: Gigabyte GeForce GTX 1050
Ram: 8GB DDR3
Processador: Intel Core i5 3330 3.00Ghz
HD: HD: 500 GB
OS: Windows 10 Pro
Minhas playlists do Spotify:
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Seg 15 Jul 2013, 17:24
tem merda no code, amanha arrumo
avatar
Convidado
Convidado
em Seg 15 Jul 2013, 17:41
Vicio_Explosivo escreveu:
"está bem simples, porém muito útil."
pra mim isso ai é russo misturado com chines...

 leia um pouco sobre e tu passa a entender o Chines Russo.
Raymildo
Veterano
Veterano
Mensagens : 1539
Reputação : 3
Desde : 01/05/2013
Idade : 25
Localização : Perto da Praia
Ver perfil do usuário
em Seg 15 Jul 2013, 17:48
Com certeza isso vai ajudar muitos, bem explicado e claro :) 
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Seg 15 Jul 2013, 18:23
vou arrumar agora
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Ter 16 Jul 2013, 11:03
arrumei
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18262
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Ter 16 Jul 2013, 12:38
Código:
#pragma pack(push, 1)

Você sabe que deixar o alinhamento da struct/class/patoqueanda em 1 vai reduzir o desempenho né? ,-,

______________________________
SXT lib (nib::csxt) 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
SXT lib (nib::csxt) 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Ter 16 Jul 2013, 12:49
vai né
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sex 16 Ago 2013, 10:09
atualizei @_@
-W4nted
Veterano
Veterano
Nick anterior : Vicio_Explosivo
Título : Tryhard
Mensagens : 4275
Reputação : 35
Desde : 07/12/2012
Idade : 19
Localização : Itanhaém - SP
Ver perfil do usuário
em Sex 16 Ago 2013, 13:18
↑ vlws
será bastante util

______________________________
https://www.youtube.com/channel/UCzG3lLzKBpPDdhWpQbUyMpg
Meu PC:
Video: Gigabyte GeForce GTX 1050
Ram: 8GB DDR3
Processador: Intel Core i5 3330 3.00Ghz
HD: HD: 500 GB
OS: Windows 10 Pro
Minhas playlists do Spotify:
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sex 16 Ago 2013, 13:40
???????
você sabe programar?
avatar
Convidado
Convidado
em Sex 16 Ago 2013, 13:56
Ele é viado
JNRois12
Programador - Básico
Programador - Básico
Mensagens : 6341
Reputação : 65
Desde : 09/07/2012
Idade : 20
Localização : Potim - SP
Link : g1.globo.com/jornal-nacional/
Ver perfil do usuário
em Sex 16 Ago 2013, 13:57
Vicio_Explosivo escreveu:↑ vlws
será bastante util
eu aposto que você não entendeu paçoca do tópico  FTS
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18262
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Sex 16 Ago 2013, 15:14
O que tem de novo? @_@

______________________________
SXT lib (nib::csxt) 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
SXT lib (nib::csxt) 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sex 16 Ago 2013, 15:18
tables
rodrigofpscs
Modelador - Básico
Modelador - Básico
Mensagens : 290
Reputação : 1
Desde : 23/01/2013
Idade : 20
Localização : Quaraí - RS
Ver perfil do usuário
em Sex 16 Ago 2013, 20:19
Meu amigo q sabe disso gostou do post.
Ajudou ele.:) 

______________________________
Minha PC Da Xuxa:

Processador Dual-Core E2200 @2.2Ghz.
GEFORCE 7050PV ONBOARD 256 MB.
HD Barracuda 500 Gb.
NVIDIA GeForce GT 630 2gb GDDR3.
Windows 7 ULTIMATE 32 Bits.
Memoria Ram: 2 Gb ddr2.
Thegamer
Programador - Avançado
Programador - Avançado
Mensagens : 6452
Reputação : 83
Desde : 02/06/2012
Idade : 21
Localização : na oi?
Ver perfil do usuáriohttp://harriprojects.blogspot.com.br
em Sex 16 Ago 2013, 21:08
@rodrigofpscs escreveu:Meu amigo q sabe disso gostou do post.
Ajudou ele.:) 
SXT lib (nib::csxt) 2398455867 

______________________________
NeverAlone
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sab 17 Ago 2013, 13:05
que amigo
Thegamer
Programador - Avançado
Programador - Avançado
Mensagens : 6452
Reputação : 83
Desde : 02/06/2012
Idade : 21
Localização : na oi?
Ver perfil do usuáriohttp://harriprojects.blogspot.com.br
em Sab 17 Ago 2013, 14:51
@Thelost escreveu:que amigo
Ele falou isso só para ++MESSAGE

______________________________
NeverAlone
rodrigofpscs
Modelador - Básico
Modelador - Básico
Mensagens : 290
Reputação : 1
Desde : 23/01/2013
Idade : 20
Localização : Quaraí - RS
Ver perfil do usuário
em Sab 17 Ago 2013, 15:04
@Thelost escreveu:que amigo
Este amigo do meu colégio
https://www.facebook.com/rodrigo.dicnf?fref=ts

______________________________
Minha PC Da Xuxa:

Processador Dual-Core E2200 @2.2Ghz.
GEFORCE 7050PV ONBOARD 256 MB.
HD Barracuda 500 Gb.
NVIDIA GeForce GT 630 2gb GDDR3.
Windows 7 ULTIMATE 32 Bits.
Memoria Ram: 2 Gb ddr2.
Thegamer
Programador - Avançado
Programador - Avançado
Mensagens : 6452
Reputação : 83
Desde : 02/06/2012
Idade : 21
Localização : na oi?
Ver perfil do usuáriohttp://harriprojects.blogspot.com.br
em Sab 17 Ago 2013, 15:29
@rodrigofpscs escreveu:
@Thelost escreveu:que amigo
Este amigo do meu colégio
https://www.facebook.com/rodrigo.dicnf?fref=ts
"
Electronic Music at Pioneer DJ AsiaCentre
Past: VASP - Vagabundos Anônimos Sustentados pelo Pais
"

Fingindo que acredito....

______________________________
NeverAlone
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sab 17 Ago 2013, 15:35
@rodrigofpscs escreveu:Meu amigo q sabe disso gostou do post.
Ajudou ele.:) 
por acaso você sabe o que é programação?
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Ter 11 Fev 2014, 17:18
atualizei esse troço ai.
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum