[C++] Editar arquivo de parametros

Caros,

Como editar um arquivo de parâmetros tipo:

parametro1: 0.50
parametro2: texto
parametro3: 8

sendo que:

  • o arquivo é muito grande, não seria legal carrega-lo na memória;
  • alguma coisa do tipo editarParametro(“parametro2”, “texto modificado”)
  • alguém me disse para truncar o arquivo, mas não entendi mui bem,
    com isso funciona?

Se o arquivo de parâmetros é em formato texto, você tem duas opções:

  • Se o parâmetro editado NÃO MUDAR DE TAMANHO (ou seja, " parametro1: 0.50 " passar para " parametro1: 0.78 ", então você pode acessar o arquivo como sendo um arquivo de acesso aleatório (use fseek e ftell), e simplesmente sobreponha o parâmetro.
  • Se você tiver de alterar o tamanho, acrescentar ou remover um parâmetro, não tem jeito - você tem de ler o arquivo linha a linha, e gravar linha a linha, inserindo, modificando ou removendo as linhas adequadas. Não é preciso carregar o arquivo inteiro na memória, mas você tem de trabalhar com 2 arquivos distintos (o de entrada e o de saída), remover o arquivo de entrada e renomear o arquivo de saída para o nome original do arquivo de entrada.

No caso é a segunda opção, o parâmetro altera o tamanho.

Achava que talvez tivesse alguma alternativa para não ter que criar um segundo arquivo.

Valeu pela resposta!!!