2013-06-24 30 views
0

我想用我的字符串列表在delphi中顯示2個不同的結果。如何檢查一個Stringlist索引?

如果索引小於1,它應該顯示其他結果。

我總是得到List index exceeds the maximum error

繼承人我的代碼。

function TForm1.readTable: String; 
var 
    ini: TIniFile; 
    einträge: TStringList; 
begin 
    try 
    einträge := TStringList.Create; 
    inipfad := ExtractFilePath(ParamStr(0)) + '/initest/' + 'config.INI'; 
    ini := TIniFile.Create(inipfad); 
    ini.ReadSections(einträge); 
    ShowMessage('geht'); 

    if einträge.IndexOf < 1 then 
    Result := einträge[0] 
    else 
    Result := einträge[1]; 

    finally 
    ini.Free; 
    Einträge.Free; 
    end; 
end; 

現在改爲

if einträge.Count <= 0 then begin 
    Result := einträge[0] 
    end 
    else 
    Result := einträge[1]; 

而且它沒有錯誤的工作。這是一個真正的解決方案?

+2

TStringLIst.IndexOf獲取代碼中缺少的字符串參數。 –

+0

我將它改爲ifeinträge.Count<= 0,然後開始 結果:=einträge[0] 結束 else 結果:=einträge[1]; – Hidden

+0

不,如果count爲0,那麼你在列表中沒有任何東西,並且eintrage [0]不存在。列表是從零開始的,因此如果count爲1,那麼列表中唯一存在的項目就是索引0. – RobS

回答

1

而不是eintrage.indexof<1您需要eintrage.count=1

如果您的清單在ini.ReadSections之後爲空,您還應該檢查eintrage.count是1還是2。