如何用 delphi 读取下面格式的数据到listbox控制中,实现选择省份时后面出现相应县市,  
有两个listbox 控件,listbox1和listbox2 当listbox1选择省份时 listbox2出现相对应的县市。
[省城分类]
全国省城
[全国省城]
SF=河北省\山西省\辽宁省\吉林省\黑龙江省\江苏省\浙江省\安徽省\福建省\江西省\山东省\河南省\湖北省\湖南省\广东省\海南省\四川省\贵州省\云南省\陕西省\甘肃省\青海省\内蒙古自治区\广西壮族自治区\西藏自治区\宁夏回族自治区\新疆维吾尔自治区\其他\
[河北省]
CS=石家庄\唐山\秦皇岛\邯郸\邢台\保定\张家口\承德\沧州\廊坊\衡水\
  
[山西省]
CS=太原\大同\阳泉\长治\晋城\朔州\榆次\忻州\离石\临汾\运城\
[辽宁省]
CS=沈阳\大连\鞍山\抚顺\本溪\丹东\锦州\葫芦岛\营口\盘锦\阜新\辽阳\铁岭\朝阳\
[吉林省]
CS=长春\吉林\四平\辽源\通化\白山\松原\白城\延吉\
[黑龙江省]
CS=哈尔滨\齐齐哈尔\鹤岗\双鸭山\鸡西\大庆\伊春\牡丹江\佳木斯\七台河\黑河\绥化\
[江苏省]
CS=南京\徐州\连云港\淮阳\宿迁\盐城\扬州\泰州\南通\镇江\常州\无锡\苏州\淮安\淮阴\
[浙江省]
CS=杭州\宁波\温州\嘉兴\湖州\绍兴\金华\衢州\舟山\台州\丽水\
[安徽省]
CS=合肥\芜湖\蚌埠\淮南\马鞍山\淮北\铜陵\安庆\黄山\滁州\阜阳\宿州\巢湖\六安\毫州\宣州\贵池\
[福建省]
CS=福州\厦门\三明\莆田\泉州\漳州\南平\龙岩\宁德\
[江西省]
CS=南昌\景德镇\萍乡\九江\鹰潭\赣州\上饶\宜春\临安\吉安\
[山东省]
CS=济南\青岛\淄博\枣庄\潍坊\烟台\威海\济宁\泰安\德州\临沂\聊城\滨州\菏泽\莱芜\东营\日照
[河南省]
CS=郑州\开封\洛阳\平顶山\焦作\鹤壁\新乡\安阳\濮阳\许昌\漯河\三门峡\南阳\商丘\信阳\周口\驻马店\
[湖北省]
CS=武汉\黄石\襄樊\十堰\荆州\宜昌\荆门\孝感\黄冈\咸宁\随州\
[湖南省]
CS=长沙\株州\湘潭\衡阳\邵阳\岳阳\常德\益阳\郴州\永州\怀化\娄底\吉首\
[广东省]
CS=广州\深圳\珠海\汕头\韶关\河源\梅州\惠州\汕尾\东莞\中山\江门\佛山\阳江\湛江\茂名\肇庆\潮州\揭阳\
[海南省]
CS=海口\三亚\
[四川省]
CS=成都\重庆\自贡\攀枝花\泸州\德阳\绵阳\广元\遂宁\内江\乐山\南充\宜宾\广安\达川\眉山县\西昌\
[贵州省]
CS=贵阳\贵州\六盘水\遵义\铜仁\毕节\安顺\兴义\凯里\都习\
[云南省]
CS=昆明\曲靖\玉溪\楚雄\大理\
[陕西省]
CS=西安\铜川\宝鸡\咸阳\渭南\延安\汉中\榆林\商州\安康\
[甘肃省]
CS=兰州\白银\天水\平凉\武威\张掖\酒泉\
[青海省]
CS=西宁\格尔木\
[内蒙古自治区]
CS=呼和浩特\包头\乌海\赤峰\通辽\集宁\海拉尔\临河\乌兰浩特\
[广西壮族自治区]
CS=南宁\柳州\桂林\梧州\北海\防城港\钦州\贵港\玉林\百色\河池\
[西藏自治区]
[宁夏回族自治区]
CS=银川\石嘴山\吴忠\固原县\
[新疆维吾尔自治区]
CS=乌鲁木齐\库尔勒\伊宁\塔城\
[其他]
CS=北京\天津\上海\重庆\香港\澳门\台湾\
[石家庄]
XC=藁城\晋州\辛集\井陉\平山\新乐\无极\行唐\鹿泉\赵县\高邑\正定\深泽\灵寿\元氏\栾城\矿区\西柏坡\
[保定]
XC=涿州\定州\安国\高碑店\满城\清苑\涞水\阜平\徐水\定兴\唐县\高阳\容城\涞源\望都\安新\易县\曲阳\蠡县\顺平\博野\
[张家口]
XC=宣化\康保\张北\阳原\赤城\沽源\怀安\怀来\崇礼\尚义\蔚县\涿鹿\万全\
[承德]
XC=承德\兴隆\平泉\滦平\隆化\丰宁\围场\宽城\
[唐山]
XC=遵化\丰南\迁安\迁西\滦县\滦南\丰润\玉田\唐海\乐亭\
[廊坊]
XC=霸州\三河\固安\永清\香河\大城\文安\大厂\
[沧州]
XC=泊头\任丘\黄骅\河间\沧县\青县\东光\海兴\盐山\肃宁\南皮\吴桥\献县\孟村\
[衡水]
XC=冀州\深州\饶阳\枣强\故城\阜城\安平\武邑\景县\武强\
[邢台]
XC=南宫\沙河\柏乡\任县\清河\宁晋\威县\隆尧\临城\广宗\临西\内丘\平乡\巨鹿\新河\南和\
[邯郸]
XC=武安\邯郸\永年\曲周\馆陶\魏县\成安\大名\涉县\广平\肥乡\临漳\磁县\
[秦皇岛]
XC=昌黎\卢龙\抚宁\青龙\
[太原]
XC=古交\阳曲\清徐\娄烦\
[大同]
XC=大同\天镇\灵丘\阳高\左云\广灵\浑源\
[阳泉]
XC=平定\盂县\
[长治]
XC=潞城\长治\长子\平顺\襄垣\沁源\屯留\黎城\武乡\沁县\壶关\平顺\
[晋城]
XC=高平\泽州\陵川\阳城\沁水\
[朔州]
XC=山阴\石玉\应县\怀仁\
[忻州]
XC=原平\代县\神池\五寨\五台\偏关\宁武\静乐\繁峙\河曲\保德\定襄\岢岚\
[晋中]
XC=介休\昔阳\灵石\祁县\左权\寿阳\太谷\和顺\平遥\榆社\
[吕梁]
XC=孝义\汾阳\文水\中阳\兴县\临县\方山\柳林\岚县\交口\交城\石楼\
[临汾]
XC=侯马\霍州\汾西\古县\安泽\大宁\浮山\古县\隰县\襄汾\翼城\永和\乡宁\曲沃\洪洞\蒲县\
[运城]
XC=河津\永济\闻喜\新绛\平陆\垣曲\绛县\稷山\芮城\夏县\万荣\临猗\
[沈阳]
XC=新民\法库\辽中\康平\
[大连]
XC=瓦房店\普兰店\庄河\长海\
[鞍山]
XC=海城\台安\岫岩\
[抚顺]
XC=抚顺\新宾\清原\
[本溪]
XC=本溪\桓仁\
[丹东]
XC=东港\凤城\宽甸\
[锦州]
XC=凌海\北宁\黑山\义县\
[葫芦岛]
XC=兴城\绥中\建昌\
[营口]
XC=大石桥\盖州\
[盘锦]
XC=大洼\盘山\
[阜新]
XC=彰武\阜新\
[辽阳]
XC=辽塔\辽阳\
[铁岭]
XC=铁法\开原\铁岭\昌图\西丰\
[朝阳]
XC=凌源\北票\朝阳\建平\喀喇沁左翼\
[长春]
XC=九台\榆树\德惠\农安\
[吉林]
XC=舒兰\桦甸\蛟河\磐石\永吉\
[四平]
XC=公主岭\双辽\梨树\伊通\
[辽源]
XC=东辽\东丰\
[通化]
XC=梅河口\集安\通化\辉南\柳河\
[白山]
XC=临江\靖宇\抚松\长白\江源\
[松原]
XC=乾安\长岭\扶余\前郭尔罗斯\
[白城]
XC=大安\洮南\镇赉\通榆\
[延吉]
XC=延吉\图们\敦化\龙井\珲春\和龙\汪清\安图\
[哈尔滨]
XC=阿城\尚志\双城\五常\呼兰\方正宾县\依兰\巴彦\通河\木兰\延寿\方正\
[齐齐哈尔]
XC=讷河\富裕\拜泉\甘南\依安\克山\泰来\克东\龙江\
[鹤岗]
XC=萝北\绥滨\
[双鸭山]
XC=集贤\宝清\友谊\饶河\

解决方案 »

  1.   

    个人认为用INI文件是最佳选择
      

  2.   

    unit NationMap.Form;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TMap = class
      private
        FNames: TStringList;
      protected
      public
        constructor Create; virtual;
        property Names: TStringList read FNames write FNames;
      end;type
      TNationForm = class(TForm)
        ButtonShow: TButton;
        ListProvince: TListBox;
        ListCity: TListBox;
        ListCountry: TListBox;
        procedure ButtonShowClick(Sender: TObject);
        procedure ListProvinceClick(Sender: TObject);
        procedure ListCityClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      NationForm: TNationForm;implementation{$R *.dfm}uses
      IniFiles;{ TMap }constructor TMap.Create;
    begin
      inherited Create;
      FNames := TStringList.Create;
      FNames.Delimiter := '\';
    end;procedure TNationForm.ButtonShowClick(Sender: TObject);
    var
      MAPNation: TMAP;
      MapPorvince: TMap;
      MapCity: TMap;
      ListNation: TStringList;
      ListPorvince: TStringList;
      FNationFile: TIniFile;
      Idx1: Integer;
      Idx2: Integer;
    begin
      FNationfile := TIniFile.Create('C:\Nation.INI');
      MAPNation := TMap.Create;  ListNation := TStringList.Create;
      ListNation.Delimiter := '\';
      ListNation.DelimitedText := FNationfile.ReadString('全国省城', 'SF', '');  for Idx1 := 0 to Pred(Pred(ListNation.Count)) do
      begin
        ListPorvince := TStringList.Create;
        ListPorvince.Delimiter := '\';
        ListPorvince.DelimitedText := FNationfile.ReadString(ListNation[Idx1], 'CS', '');
        MapPorvince := TMap.Create;
        for Idx2 := 0 to Pred(Pred(ListPorvince.Count)) do
        begin
          MapCity := TMap.Create;
          MapCity.Names.DelimitedText := FNationfile.ReadString(ListPorvince[Idx2], 'XC', '');
          MapPorvince.Names.AddObject(ListPorvince[Idx2], MapCity);
        end;
        MAPNation.Names.AddObject(ListNation[Idx1], MapPorvince)
      end;  ListProvince.Items := MAPNation.Names;end;procedure TNationForm.ListProvinceClick(Sender: TObject);
    begin
      ListCity.Items := TMap(ListProvince.Items.Objects[ListProvince.ItemIndex]).Names;
      ListCountry.Items := TMap(ListCity.Items.Objects[0]).Names;
    end;procedure TNationForm.ListCityClick(Sender: TObject);
    begin
      ListCountry.Items := TMap(ListCity.Items.Objects[ListCity.ItemIndex]).Names;
    end;end.
    PS: 把你上面的国家信息拷贝到一个文本文件里面,然后另存为INI文件