Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda em leitura de .ini


Pedro Warlock

Pergunta

Olá pessoal. Meu nome é Pedro e sou iniciante na linguagem C++ e tenho muita dificuldade de encontrar informações sobre a linguagem. Não sou muito bom em inglês e me parece que muito dos tutorias são em Inglês e por fim eu acabei encontrando esse forum. Bom...minha dúvida é o seguinte...

    int Ret=0;
    char buffer1[100];
    Ret = GetPrivateProfileStringA("MODO","INFO","0", buffer1, 100, ".\\arquivo.ini"); 

No script a cima eu estou lendo uma informação do ini para passar para outra sequencia de código e minha dúvida é:
Como eu no lugar do "INFO" coloco uma string? Por exemplo. A string vai definir o que será lido no .ini

Eu declarei ela e tudo mais. Tentei..

  Ret = GetPrivateProfileStringA("MODO",valordoarquivo,"0", buffer1, 100, ".\\arquivo.ini"); 

 

Desculpem minha ignorância, mas sou iniciante na linguagem. Obrigado!

 

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

se valor do arquivo for algo como string valordoarquivo; 
simplesmente você pode chamar a funçao menbro c_str(), pois al parecer a funçao GetPrivateProfileStringA aceita strings de C, porem acho que você quer lhe passar um string de C++(classe), os strings de C e C++ são duas coisas totalmente diferentes, em C é char string[100] por exemplo, ou seja um array, e em C++ string é uma classe, sendo assim en c++ você tem dentro da classe muitas utilidades, uma delas como já falei c_str(), que permite você passar um string de c++ para um string de C,

Ret = GetPrivateProfileStringA("MODO",valordoarquivo.c_str(),"0", buffer1, 100, ".\\arquivo.ini"); 

Resumindo...
Se tiver um objeto string de C++ e quiser passalo como como se de um array se tratasse, use objeto.c_str(). Um exemplo seria
char frase[100];
string outraFrase = "Ola mundo!";
strcpy(frase, outraFrase.c_str());

Se quiser copiar um array em um objeto da classe string faça normalmente pois a classe string possui o operador de atribuiçao sobrecarregado que permite você fazer algo como cppString = cString;.

Para saber si precisa de um ou outro basta você ir onde esta declarado a funçao GetPrivateProfileStringA e ver como está declarada, seria algo como 

GetPrivateProfileStringA(..., char nomeArray[tamanho], ... , ...etc, ao ver algo como char nomeArray[tamanho] (pode ter outros nomes), você já deveria saber que ela espera um string de C (array), então se quiser passar um string de C++ precisa usar o c_str() que basicamente o que faz é transformar um objeto da classe string de C++ em um array que possa ser "digerido" pela função. Por outro lado si no segundo parâmetro estiver algo como string nomeString então pode passar o objeto normalmente.

http://www.cplusplus.com/reference/string/string/c_str/

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...