Les fichiers .INI, lire toutes les informations d'une section
Bonjour tout le monde,
Je suis entrain de créer une application qui doit lire un fichier .INF.
Cependant je dois lire une section qui contient ce qui suit :
Citation:
[HardwareIds.scsi.BUSDRV]
id = "PCI\VEN_10DE&DEV_008E", "nvatabus"
id = "PCI\VEN_10DE&DEV_0085", "nvatabus"
id = "PCI\VEN_10DE&DEV_00D5", "nvatabus"
id = "PCI\VEN_10DE&DEV_00EE", "nvatabus"
Pour cela je fais :
Ini->ReadSectionValues("HardwareIds.scsi.BUSDRV",LBSata->Items);
(où LBSata est un TListBox)
Comme c'est la même variable => id et des valeurs différentes
Il lit cette secion comme suit :
Citation:
[HardwareIds.scsi.BUSDRV]
id = "PCI\VEN_10DE&DEV_008E", "nvatabus"
id = "PCI\VEN_10DE&DEV_008E", "nvatabus"
id = "PCI\VEN_10DE&DEV_008E", "nvatabus"
id = "PCI\VEN_10DE&DEV_008E", "nvatabus"
Comment pourrais-je procéder pour qu'il lit comme je veux ?
Parce que je ne vois pas d'autres solutions à cette heure-ci.
Merci pour votre future réponse constructive
PS:
j'ai inventé une solution mais si quelqu'un a une meilleure solution je suis prenant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
TMemoryStream* pms = new TMemoryStream();
pms->LoadFromFile ("c:\\txtsetup.oem");
pms->Seek(0,soFromBeginning);
char *Buffer = new char [pms->Size];
pms->ReadBuffer(Buffer, pms->Size);
int i=0;
AnsiString buf = AnsiString(Buffer);
while ( (buf.SubString(0,buf.AnsiPos("\r\n")).LowerCase().Trim()!="[hardwareids.scsi.busdrv]") && (buf.Length()>10))
{
buf=buf.SubString (buf.AnsiPos("\r\n")+1,buf.Length());
}
buf=buf.SubString (buf.AnsiPos("\r\n")+1,buf.Length());
while ( (buf.SubString(0,buf.AnsiPos("\r\n")).LowerCase().Trim().AnsiPos("[")==0) && (buf.Length()>10))
{
buf=buf.SubString (buf.AnsiPos("\r\n")+1,buf.Length());
ShowMessage(buf.SubString (0,buf.AnsiPos("\r\n")));
} |