السلام عليكم ورحمة الله وبركاته
لقد بحثت هنا وفي الانترنت ولم أجد طريقة مختصرة
كل التعليمات التي وجدتها تفرض أن يكون الـ key رقم integer .
وأقول هذا لأجل الوصول السريعة للقيم بدون معرفة رقم الترتيبي لها .
جربت وضع نوع سجل به key, value ثم وجدت الرقم يلاحقني في المصفوفة
type TConfigRec = Record key : string[50]; value : string[50]; //input : string; end; TConfigArr = array of TConfigRec; var Config : TConfigArr; procedure loadCfg( var aCfg : TConfigArr); var i, n, index: Integer; objIni : TIniFile; iniFileName : String; Sections, KeyList :TStringList; begin iniFileName := GetCurrentDir() + '\cfg.ini'; if FileExists(iniFileName) Then begin try Sections :=TStringList.Create; KeyList := TStringList.Create; objIni := TIniFile.Create(iniFileName); objIni.ReadSections(Sections); for i := 0 to Sections.Count - 1 do begin objIni.ReadSection(Sections.ValueFromIndex, KeyList); index := Length(aCfg); for n := 0 to KeyList.Count - 1 do begin SetLength(aCfg, Length(aCfg) + 1); inc(index); aCfg[index].key := KeyList[n]; aCfg[index].value:= objIni.ReadString(Sections.ValueFromIndex, KeyList[n], ''); end; end; finally Sections.Free; KeyList.Free; objIni.Free; end; // try end; // if end;
المطلوب لا أريد
aCfg[index].key := ''; aCfg[index].value:= '';
أريد :
aCfg[KeyList[n]] = objIni.ReadString(Sections.ValueFromIndex, KeyList[n], '');;