Je l'extrait de code de code suivant qui fonctionne très bien:Comment puis-je lire un contenu en ligne de fichier en utilisant le numéro de ligne
ifstream NDSConfig("NDS.config") ;
string szConfigVal ;
while(getline(NDSConfig, szConfigVal))
{
//code
}
Mais le problème est que je dois mettre à jour un état de case à cocher en comparant les valeurs de ligne. Le code sera alors similaire à ce qui suit:
ifstream NDSConfig("NDS.config") ;
string szConfigVal ;
while(getline(NDSConfig, szConfigVal))
{
if(szConfigVal == "AutoStart = 1")
{
//Set Check Box True
}
else if(szConfigVal == "AutoStart = 0")
{
//Set Check Box False
}
if(szConfigVal == "AutLogHistory = 1")
{
//Set Check Box True
}
else if(szConfigVal == "AutLogHistory = 0")
{
//Set Check Box False
}
if(szConfigVal == "AutoScan = 1")
{
//Set Check Box True
}
else if(szConfigVal == "AutoScan = 0")
{
//Set Check Box False
}
if(szConfigVal == "AutoMount = 1")
{
//Set Check Box True
}
else if(szConfigVal == "AutoMount = 0")
{
//Set Check Box False
}
if(szConfigVal == "AutoOpen = 1")
{
//Set Check Box True
}
else if(szConfigVal == "AutoOpen = 0")
{
//Set Check Box False
}
if(szConfigVal == "LastConnectedSvr = 1")
{
//Set Check Box True
}
else if(szConfigVal == "LastConnectedSvr = 0")
{
//Set Check Box False
}
}
Si je vais utiliser while alors mon état sera plus RIDEN que la dernière de la valeur de la boucle ou de l'État sera mis à jour. Y a-t-il un autre moyen de s'en sortir? J'ai besoin de définir les valeurs de la case à cocher après avoir lu le fichier de configuration. Le fichier de configuration se présente comme ci-dessous:
AutoStart = 0
AutLogHistory = 1
AutoScan = 1
AutoMount = 0
AutoOpen = 0
LastConnectedSvr = 1
Bien que je peux J'ai seulement un seul si et tout le reste comme d'autres si cela peut aider mais j'ai besoin d'un meilleur moyen.
Il n'est pas clair quel est le problème. Voulez-vous que le premier paramètre pour vos variables dans NDS.config "compte"? Voulez-vous vérifier les variables doublement définies dans le fichier? Qu'est-ce que cela a à voir avec les numéros de ligne que vous mentionnez dans le titre? –