2017-10-27 2 views
0

은 내가 INI 파일이 포함 된이 말 :TIniFile.ReadSection가 비어있는 첫 번째 줄에서 중지

다음
[Section_1] 
one=1 
two=2 

four=4 
five=5 

, 나중에 TIniFile.ReadSection('Section_1', MyStringList), MyStringList.ini 파일에있는 빈 줄이 포함되지 않습니다 사용할 때.

어떻게이 문제를 극복하고 MyStringList(빈을 포함하여)을 모두 포함시킬 수 있습니까?

ini 섹션에서 TMemo을 채울 필요가 있으며, 각 라인을 ini 섹션에서 공백 라인까지 TMemo에로드해야한다는 사실에 의존해야합니다.

+2

당신은이 경우의 메모에 파일을로드해야합니다. –

+1

INI 표준은 빈 줄을 고려하지 않습니다. 이것이 필수 형식이면, 그것은 순전히 사용자 정의이며 따라서'TIniFile'에 의지해서는 안됩니다. –

답변

2

공백 행은 무시됩니다. TIniFileTMemIniFile입니다. 당신은 빈 줄을로드해야하는 경우 이러한 TStringList와 마찬가지로 파일을 직접 구문 분석해야합니다 :

MyStringList.LoadFromFile('file.ini'); 
i := MyStringList.IndexOf('[Section_1]'); 
if i >= 0 then 
begin 
    for j := i+1 to MyStringList.Count-1 do 
    begin 
    s := Trim(MyStringList[j]); 
    if (s <> '') and (s[1] = '[') and (s[Length(s)] = ']') then 
     Break; 
    // add s to Memo as needed... 
    end; 
end; 
+0

레미 감사합니다! 이것은 내 문제를 해결합니다! –