2013-10-10 15 views
0

如果我那裏有2列分隔的文本文件:的listctrl超出範圍上的文件與少於3個字段

"OBJECTID","FULL_ADDRESS" 
573,"1001 QUAIL RIDGE RD" 
7123,"1000 S 13TH ST" 

我怎麼能告訴我的物品留在範圍內。
對於具有多於2列的其他數據庫,此代碼運行良好。

def reloadList(self): 
    lc = self.GetListCtrl() 
    lc.DeleteAllItems() 
    self.itemDataMap = {} 
    length = 0 
    for row in self.sortedlist: 
     self.itemDataMap[length] = row 
     length = length + 1    


items = self.itemDataMap.items() 
for key, data in items: 
    idx = lc.InsertStringItem(sys.maxint, data[0]) 
    lc.SetStringItem(idx, 0, data[0]) 
    lc.SetStringItem(idx, 1, data[1]) 
    lc.SetStringItem(idx, 2, data[2]) 
    lc.SetItemData(idx, key) 
lc.SetColumnWidth(0, wx.LIST_AUTOSIZE) 
lc.SetColumnWidth(1, wx.LIST_AUTOSIZE) 
lc.SetColumnWidth(2, wx.LIST_AUTOSIZE) 

回答

0

只需刪除以下行:

lc.SetStringItem(idx, 2, data[2]) 

這條線是什麼套的第三列。由於您沒有3列,因此您不需要該代碼。

你也可以做一個LEN(數據)做這樣的事情:

if len(data) == 3: 
    lc.SetStringItem(idx, 2, data[2]) 

然後你就可以處理這兩種情況。

+0

工作的麥克 – George