Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Tutorial][C/C++] Obter dados de arquivo.ini


felipeanchieta
 Compartilhar

Posts Recomendados

Olá programadores de C/C++ noobs ou não (no meu caso, sou noob).

 

Esse tutorial vai dar um exemplo de utilização de arquivos .ini em C/C++ usando a Windows API!

 

Isso pode talvez ser útil para quem está no projeto do Despertador (talvez eu não faça, mas vou ajudar).

 

Basicamente, o arquivo .ini terá o seguinte contéudo:

 

É necessário se cadastrar para acessar o conteúdo.

Este arquivo deverá ser salvo com o nome de dbsettings.ini

 

Acesso ao arquivo em C/C++:

 

É necessário se cadastrar para acessar o conteúdo.

Explicação do código-fonte:

 

#include <Windows.h>

 

Primeiramente, carregamos a Windows API. Ela terá tudo o que precisamos.

 

Depois, declaramos a função main que retornará um int. Os argumentos das funções representam as entradas por linha de comando. Exemplo:

 

format -ntfs C:

 

O exemplo é do comando format do Windows. -ntfs é um argumento e C: é outro argumento.

 

No caso, _TCHAR é um tipo de variável próprio da Win32 API que, no caso, está substituindo char.

 

Bom, assim ficará a declaração da função main:

 

int main(int argc, _TCHAR *argv[])

{

...

}

 

-

 

Agora, já dentro da função main, iremos colocar as funções necessárias:

 

Primeiro, iremos declarar um vetor _TCHAR e um número inteiro:

 

_TCHAR dbserver[100];

int dbport;

 

Logo após, iremos usar a função GetPrivateProfileString(). Sua sintaxe é: (copiei descaradamente do msdn)

 

DWORD WINAPI GetPrivateProfileString(

__in LPCTSTR lpAppName,

__in LPCTSTR lpKeyName,

__in LPCTSTR lpDefault,

__out LPTSTR lpReturnedString,

__in DWORD nSize,

__in LPCTSTR lpFileName

);

 

Seguindo essa sintaxe, o programa vai inciar o vetor dbserver

GetPrivateProfileString("database", "server", "127.0.0.1", dbserver, 1000, "dbsettings.ini");

 

Agora, iremos iniciar a variável dbport:

 

dbport = GetPrivateProfileInt("database, "port", 143, "dbsettings.ini");

Veja que agora outro método foi usado para iniciar a variável.

 

Sintaxe da função GetPrivateProfileInt: (fonte: Backs)

 

É necessário se cadastrar para acessar o conteúdo.

 

Agora com a função main chegando ao fim, coloque o valor de retorno:

 

return 0;

 

---

 

Espero ter ajudado alguém... talvez...

Códigos retirados

É necessário se cadastrar para acessar o conteúdo.

Tutorial inteiramente meu.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Ambas essas funções são para obter valores que estão no .ini

 

Mas como eu disse, não achei a sintaxe do GetPrivateProfileInt.

 

 

.ini é um arquivo de configuração clássico do Windows. Usar ele como banco de dados até serve, mas é inseguro... e demorado.

Banco de dados mesmo é qualquer um que seja baseado em SQL, sei lá, não estudei ainda banco de dados.

Link para o comentário
Compartilhar em outros sites

Valeu aí, coloquei lá e coloquei os devidos créditos.

 

Achei um link aqui na msdn interessante pra quem quer saber mais sobre a Windows API. Serve pra Visual C++ / C# / VB:

É necessário se cadastrar para acessar o conteúdo.

Link para o comentário
Compartilhar em outros sites

A Sintaxe dessas funções da API você pode achar na biblioteca WinBase.h, eu ja tenho a MSDN no meu computador, instalei aqui, fico muitas vezes sem conexão e querendo tirar uma dúvida ai eu instalei hehehe muito útil mesmo.

Link para o comentário
Compartilhar em outros sites

Eu sempre interpretei arquivos do tipo como arquivos normais.

 

Essa src num eh minha, mas é a mesma coisa que eu faço, a única diferença é que uso o estilo C, como fopen_s(), etc...

 

É necessário se cadastrar para acessar o conteúdo.

 

Usa um pouco mais de lógica, mas funciona perfeitamente.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.