Jump to content
Fórum Script Brasil
  • 0

Ajuda em leitura de .ini


Pedro Warlock
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...