下面是返回结果:
2009-07-08,0720,0940,3U,8881,F9A9P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,0800,1030,CA,4113,F9A0Y9B9M0H0K0L0Q9G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,0900,1135,CA,4101,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,0920,1140,3U,8883,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1000,1220,UA,5462,F9P9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,NH,5779,F9Y9B9M9S9K9H9W9L9G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,CA,4107,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1100,1325,CA,4115,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1125,1345,3U,8885,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1130,1400,HU,7148,F9P9A0Y9B0H0K0L0M9Q0X0U0E0T0Z0J9V9W9G0O0S9*9,|T1,CTU,PEK,330,0,1,0,1,AS^2009-07-08,1200,1435,CA,1406,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1220,1450,CZ,6162,F9P9Y9T0K9H0M0G9S0L0Q0U0E0V0B9X0N9R0*9,|T2,CTU,PEK,332,0,1,0,1,AS^2009-07-08,1300,1520,CA,421,C9D0Z0R0J0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1330,1555,CA,1416,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,330,0,0,0,1,DS^2009-07-08,1345,1605,3U,8887,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,AS^2009-07-08,1400,1625,CA,4103,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,330,0,1,0,1,DS^2009-07-08,1400,1625,UA,5442,F9P9C9D9Z9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,330,0,1,1,1,DS^2009-07-08,1450,1710,3U,8893,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1500,1730,CA,4109,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1555,1815,3U,8889,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1600,1820,CA,4105,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,1,0,1,DS^2009-07-08,1700,1920,CA,4117,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1800,2030,CA,4119,F9A0Y9B9M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1840,2100,3U,8891,F9A0P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B0X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^
是航班数据,求一分隔方式,每个一航班分隔号是^,航班信息中的每个信息分隔是用“,”,现要提取查询日期(如:2009-07-08),航段(如CTU-PEK成都到北京)航班号(如:3U8881),起飞时间(如:0720),降落时间(如0940)舱位及可预订数(如F9A9P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9),请高手能给指点,有源码最好,请发至[email protected],并跟贴,高分!

解决方案 »

  1.   

    WebService返回这种东西的话,就没什么意义了WebService优点是能返回结构性的东西上面的是题外话。这个用正则表达可以很容易弄出来,我给你写一段代码,稍等……
      

  2.   

      string _Value="2009-07-08,0720,0940,3U,8881,F9A9P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,0800,1030,CA,4113,F9A0Y9B9M0H0K0L0Q9G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,0900,1135,CA,4101,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,0920,1140,3U,8883,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1000,1220,UA,5462,F9P9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,NH,5779,F9Y9B9M9S9K9H9W9L9G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,CA,4107,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1100,1325,CA,4115,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1125,1345,3U,8885,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1130,1400,HU,7148,F9P9A0Y9B0H0K0L0M9Q0X0U0E0T0Z0J9V9W9G0O0S9*9,|T1,CTU,PEK,330,0,1,0,1,AS^2009-07-08,1200,1435,CA,1406,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1220,1450,CZ,6162,F9P9Y9T0K9H0M0G9S0L0Q0U0E0V0B9X0N9R0*9,|T2,CTU,PEK,332,0,1,0,1,AS^2009-07-08,1300,1520,CA,421,C9D0Z0R0J0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1330,1555,CA,1416,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,330,0,0,0,1,DS^2009-07-08,1345,1605,3U,8887,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,AS^2009-07-08,1400,1625,CA,4103,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,330,0,1,0,1,DS^2009-07-08,1400,1625,UA,5442,F9P9C9D9Z9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,330,0,1,1,1,DS^2009-07-08,1450,1710,3U,8893,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1500,1730,CA,4109,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1555,1815,3U,8889,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1600,1820,CA,4105,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,1,0,1,DS^2009-07-08,1700,1920,CA,4117,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1800,2030,CA,4119,F9A0Y9B9M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1840,2100,3U,8891,F9A0P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B0X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^ ";            string[] _List = _Value.Split('^');            
                var _ObjectList =_List.Select(i=>i.Split(',')).ToList();            foreach (string[] _Message in _ObjectList)
                {
                    MessageBox.Show(_Message[0]);
                    MessageBox.Show(_Message[1]);
                    MessageBox.Show(_Message[2]);
                    MessageBox.Show(_Message[3]);
                }
      

  3.   

    string[] obj = str.Split(',', '^');
      

  4.   


                string src = "2009-07-08,0720,0940,3U,8881,F9A9P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,0800,1030,CA,4113,F9A0Y9B9M0H0K0L0Q9G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,0900,1135,CA,4101,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,0920,1140,3U,8883,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1000,1220,UA,5462,F9P9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,NH,5779,F9Y9B9M9S9K9H9W9L9G9*9,YK,CTU,PEK,321,0,0,1,1,DS^2009-07-08,1000,1220,CA,4107,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1100,1325,CA,4115,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1125,1345,3U,8885,F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1130,1400,HU,7148,F9P9A0Y9B0H0K0L0M9Q0X0U0E0T0Z0J9V9W9G0O0S9*9,|T1,CTU,PEK,330,0,1,0,1,AS^2009-07-08,1200,1435,CA,1406,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1220,1450,CZ,6162,F9P9Y9T0K9H0M0G9S0L0Q0U0E0V0B9X0N9R0*9,|T2,CTU,PEK,332,0,1,0,1,AS^2009-07-08,1300,1520,CA,421,C9D0Z0R0J0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,757,0,0,0,1,DS^2009-07-08,1330,1555,CA,1416,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,330,0,0,0,1,DS^2009-07-08,1345,1605,3U,8887,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,AS^2009-07-08,1400,1625,CA,4103,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9,|T3,CTU,PEK,330,0,1,0,1,DS^2009-07-08,1400,1625,UA,5442,F9P9C9D9Z9Y9B9E9M0U9H0Q9V9W0A0S0T0K0L0G9*9,YK,CTU,PEK,330,0,1,1,1,DS^2009-07-08,1450,1710,3U,8893,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1500,1730,CA,4109,F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1555,1815,3U,8889,F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^2009-07-08,1600,1820,CA,4105,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,757,0,1,0,1,DS^2009-07-08,1700,1920,CA,4117,F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,319,0,1,0,1,DS^2009-07-08,1800,2030,CA,4119,F9A0Y9B9M0H0K0L0Q0G0S9N0V0U0W9T9E0*9,|T3,CTU,PEK,321,0,1,0,1,DS^2009-07-08,1840,2100,3U,8891,F9A0P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B0X0U9W9Z0O9*9,|T3,CTU,PEK,321,0,0,0,1,DS^";
                string pattern = pattern = @"(?<date>[^,]+),(?<st>\d+),(?<et>\d+),(?<fn1>[^,]+),(?<fn2>\d+),(?<sl>[^,]+),\|[^,]+,(?<from>[^,]+),(?<to>[^,]+),.*?\^";
                
                foreach (Match match in Regex.Matches(src, pattern))
                {
                    Console.WriteLine("日期:" + match.Groups["date"].Value);
                    Console.WriteLine("起飞时间:" + match.Groups["st"].Value);
                    Console.WriteLine("降落时间:" + match.Groups["et"].Value);
                    Console.WriteLine("航班号:" + match.Groups["fn1"].Value + match.Groups["fn2"].Value);
                    Console.WriteLine("舱位及可预订数:" + match.Groups["sl"].Value);
                    Console.WriteLine("航段:" + match.Groups["from"].Value + " - " + match.Groups["to"].Value);
                    Console.WriteLine("");
                }输出:
    日期:2009-07-08
    起飞时间:0720
    降落时间:0940
    航班号:3U8881
    舱位及可预订数:F9A9P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:0800
    降落时间:1030
    航班号:CA4113
    舱位及可预订数:F9A0Y9B9M0H0K0L0Q9G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:0900
    降落时间:1135
    航班号:CA4101
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:0920
    降落时间:1140
    航班号:3U8883
    舱位及可预订数:F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:DS^2009-07-08
    起飞时间:1000
    降落时间:1220
    航班号:CA4107
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1100
    降落时间:1325
    航班号:CA4115
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1125
    降落时间:1345
    航班号:3U8885
    舱位及可预订数:F9A9P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1130
    降落时间:1400
    航班号:HU7148
    舱位及可预订数:F9P9A0Y9B0H0K0L0M9Q0X0U0E0T0Z0J9V9W9G0O0S9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1200
    降落时间:1435
    航班号:CA1406
    舱位及可预订数:F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1220
    降落时间:1450
    航班号:CZ6162
    舱位及可预订数:F9P9Y9T0K9H0M0G9S0L0Q0U0E0V0B9X0N9R0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1300
    降落时间:1520
    航班号:CA421
    舱位及可预订数:C9D0Z0R0J0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1330
    降落时间:1555
    航班号:CA1416
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1345
    降落时间:1605
    航班号:3U8887
    舱位及可预订数:F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1400
    降落时间:1625
    航班号:CA4103
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E9*9
    航段:CTU - PEK日期:DS^2009-07-08
    起飞时间:1450
    降涫奔洌?710
    航班号:3U8893
    舱位及可预订数:F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1500
    降落时间:1730
    航班号:CA4109
    舱位及可预订数:F9A0Y9B0M0H0K0L0Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1555
    降落时间:1815
    航班号:3U8889
    舱位及可预订数:F9A0P0Y9T0H0M0G9S0L0Q0E0V0R0K0I0B9X0U9W9Z0O9*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1600
    降落时间:1820
    航班号:CA4105
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1700
    降落时间:1920
    航班号:CA4117
    舱位及可预订数:F9A0Y9B0M0H0K0L9Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1800
    降落时间:2030
    航班号:CA4119
    舱位及可预订数:F9A0Y9B9M0H0K0L0Q0G0S9N0V0U0W9T9E0*9
    航段:CTU - PEK日期:2009-07-08
    起飞时间:1840
    降落时间:2100
    航班号:3U8891
    舱位及可预订数:F9A0P0Y9T9H0M0G0S9L0Q0E0V0R0K0I0B0X0U9W9Z0O9*9
    航段:CTU - PEK
      

  5.   

    4楼的老师,还想请帮一下,舱位中如何实现将舱位分列,如F舱有9个以上,M舱有6个,依次分列,就有点像e龙的机票查询那种
      

  6.   

    自己写二个list<机票>数组
      

  7.   

    bu hou dao ,bu jie tie!
      

  8.   

    正则,JSON,对象序列化,等都行吧,随便整.
      

  9.   

    楼主,建议你把信息存到dataset中并作为返回结果,这才是正道,伪代码如下
    像你现在这样以后如果有结构上的变得将比较难维护//column字段可以定义到enum中,这样防止拷贝粘贴带来的代码重复,也便于以后修改column名
    public enum FlyingTableColumn
    {
        CXRQ = 0,
        HD,
        HBH
        ...
    }
    DataTable table = new DataTable("flying");
    table.Columns.Add(FlyingTableColumn.CXRQ.Tostring());
    table.Columns.Add(FlyingTableColumn.HD.tostring());
    table.Columns.Add(FlyingTableColumn.HBH.tostring());
    ...
    table.Columns[FlyingTableColumn.CXRQ.Tostring()] = "2009-07-08";
    table.Columns[FlyingTableColumn.HD.tostring()] = "CTU-PEK成都到北京";
    DataSet ds = new DataSet();
    ds.Tables[0] = table;return ds;
    //在调用webservice的地方,添加引用上面enum定义的文件
    DataSet ds = WebService.XXX();DataTable table = ds.Tables[0];string cxrq = table.Columns[FlyingTableColumn.CXRQ.Tostring()].Tostring();
    ...