我有一個由巴西政府機構提供的小型excel文件,它包含巴西每個城市的記錄,每個城市的郵政編碼範圍和它的「城市代碼」。我可以如何處理這可可?從plist文件檢索條目?
我需要檢索給定城市的「城市代碼」。
我想最好的辦法是解析城市給定的郵政編碼,並根據顯示郵政編碼範圍的前兩列返回其「城市代碼」。
我相信,使用AppleScript我可以爲給定的Excel文件編譯一個plist文件。但是,有人可以指點我幾行objectiveC代碼來解析ZIP代碼從plist文件中檢索給定條目嗎?
請參閱在http://www.idanfe.com/dl/codes.xls.zip
由於Excel文件。
我已上傳樣本plist文件到http://www.idanfe.com/dl/cityCodes.plist
進一步解釋:
我將解析像一個郵政編碼值:01123010這是在01001000和05895490的範圍內,所以我的程序應該返回我城市代碼= 3550308,城市名稱=聖保羅。
我不知道如何實現這一點,我可能已經構建了示例plist錯誤。
我相信我可以使用AppleScript構建plist文件,從Excel工作表讀取。
但是檢索給定郵政編碼範圍的城市代碼是一個難題。
+++編輯:+++
我想我已經解決了它,但它看起來有點笨拙,我寫的幾乎一切。
這AppleScript的讀取Excel工作表,並寫入plist文件:http://www.idanfe.com/dl/creating.scpt.zip
這裏您可以找到1 MB plist文件:http://www.idanfe.com/dl/cityCodes.plist.zip
這是我寫的,以獲得城市代碼我需要的代碼:
NSString *zipCodeString;
zipCodeString = @"99990000";
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"cityCodes" ofType:@"plist"];
NSDictionary *cityCodes_dictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];
NSArray *allKeys = [cityCodes_dictionary allKeys];
int i = 0;
for (i = 0 ; i <= [allKeys count]; i++) {
NSString *someKey = [allKeys objectAtIndex:i];
NSRange range08 = NSMakeRange (0, 8);
NSRange range88 = NSMakeRange (8, 8);
NSString *startZipCode = [someKey substringWithRange:range08];
NSString *finalZipCode = [someKey substringWithRange:range88];
int startZipCodeInt = [startZipCode intValue];
int finalZipCodeInt = [finalZipCode intValue];
if(startZipCodeInt <= [zipCodeString intValue] && finalZipCodeInt >= [zipCodeString intValue]){
NSLog(@"we found a winner");
NSString *cityCode = [NSString stringWithFormat: @"%@",[[cityCodes_dictionary objectForKey:someKey]objectForKey:@"City Code"]];
[cityCodeIBGEField setStringValue:cityCode];
NSLog(@"cityCode = %@",cityCode);
break;
} else {
// NSLog(@"no winners");
}
}
基本上我把起始zipCode和finalZip代碼附加到一個16位數的字符串中,所以我在plist文件中創建了一條記錄。
然後,當搜索城市代碼時,我打破2(回到普通zipCode)的長鍵(2個郵政編碼)並搜索以查看哪個記錄適合給定的zipCode,我需要cityCode。
有些如何看起來不是最適合我的,但出於我自己的意料,代碼是非常快的,儘管在循環中。
我會感激評論...
感謝,
我需要檢索城市代碼,提供一個在給定城市範圍內的ZIPCODE。請看我製作的示例plist文件。 – fundidor
請查看我編輯過的用於轉換的scpt文件中的鏈接。 – fundidor