Pergunta

Basicamente, eu quero ter meu programa recuperar diversas variáveis ??a partir do disco do disco rígido para uso no programa. Eu acho que, antes de pedir detalhes, eu deveria verificar se é mesmo possível. É?

Se for, qual é a melhor maneira? Eu vi o uso dos arquivos ini, mas eu não sei como recuperar dados especificamente de arquivos ini. É o mesmo que um arquivo de texto que você mexeu com a certificar-se de variáveis ??será sempre x linha? Por exemplo:

ifstream variables("variables.ini");

//some code later
//assume line 'x' holds a variable

if(variables.good())
{
   variables.get(x);
}

//or whatever =/

Eu sou do tipo em uma perda para o que fazer aqui.

Edit:. A minha língua da escolha é C ++

Foi útil?

Solução

As primeiras perguntas que você precisa endereço são o que eo porquê. Suas opções no como seguirá daqueles.

Então, quem (ou o quê) estarão acessando os dados? Se é apenas o próprio programa, então você pode armazenar os dados como quiser - arquivo binário, XML, banco de dados, arquivo ini, qualquer que seja. No entanto, se as necessidades de dados para ser facilmente acessível para o usuário para que eles possam mudá-lo antes de uma corrida, em seguida, um arquivo de texto como uma ini, que podem ser facilmente editadas, faz sentido. Para editar os dados armazenados em outros formatos que você pode ter que escrever um programa inteiramente separada apenas para manipular os parâmetros armazenados. Talvez isso faz sentido em sua situação ou talvez não, mas vai ser mais trabalho.

Se você optar por ir a rota ini, então você está no caminho certo. Eles são apenas arquivos de texto. Um formato comum é ter seções (geralmente entre parênteses), e depois pares de chave / valor dentro das seções. Normalmente, as linhas de comentário começam com ponto e vírgula, um toque agradável para os usuários que podem querer virar para trás e para frente entre as configurações.

Então, algo como isto:

[System]
    datapath = /home/me/data

[Application]
    start_count = 12
;   start_count = 20  //this is a comment

Você não tem que se preocupar com linhas específicas para seus dados. Você acabou de ler o arquivo linha por linha. linhas vazias ou comentário se jogou. Você tome nota do que a secção que se encontra e de processar os pares de chave / valor.

Existem muitas maneiras de armazenar o arquivo analisado em seu programa. Um simples pode ser para concatenar o nome da seção e chave em uma chave para um mapa. O valor (do par chave / valor) seriam os dados para o mapa.

Assim, "Systemdatapath" poderia ser uma chave de mapa e seu valor seria "/ home / me / dados". Quando suas necessidades de programa para usar os valores que ela só olha-lo pela chave.

Isso é o básico. Finalmente você vai querer embelezar. Por exemplo, métodos para recuperar valores por tipo. Por exemplo. getString (), getInteger (), getFloat (), etc.

Outras dicas

Você decide o formato do arquivo .ini de sua aplicação. Eu costumo trabalhar com XML, porque então você pode organizar suas informações por escopo e já existe um monte de libs para lidar com armazenar e recuperar informações de árvores XML.

Edit: para C ++ - http://xerces.apache.org/xerces-c/

Se você vai estar puxando os valores a partir dos arquivos com freqüência, e especialmente se você precisa de atualização (persistir) esses valores, um banco de dados é uma ótima opção. Ele também irá dar-lhe um bom desempenho como o seu conjunto de dados cresce.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top