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 :


[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 :
[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 : Sélectionner tout - Visualiser dans une fenêtre à part
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")));
}