开放式基金

using  System;

using  System.Text;

using  System.Text.RegularExpressions;

using  System.Net;

using  System.IO;

using  System.Collections;



namespace  SEI.DL88250.SourceCodes.CSharp

{

    
struct  FoundationData

    {

        
public   string  _code;

        
public   string  _name;

        
public   string  _tDay;

        
public   string  _tSub1Day;

        
public   string  _growRate;

        
public   string  _pureValue;

    }



    
class  OpenFoundation

    {

        
public   static   string [] _foundationNames 

            
=  {  " 汇添富均衡增长 "

                
" 景顺长城新兴成长 " ,

                
" 华安宏利 " ,

                
" 易方达策略成长2号 " ,

                
" 南方绩优成长 " ,

                
" 南方避险 "

              };

        
public   static   double [] _originalPureValue

            
=  {  1.8271 ,

                
1.8120 ,

                
1.6818 ,

                
1.596 ,

                
1.0 ,

                
1.0

              };

        
public   static   double [] _investment

            
=  {  50000 ,

                
20000 ,

                
100000 ,

                
60000 ,

                
60000 ,

                
11000

              };

        
public   static   double [] _shares

            
=  { _investment[ 0 /  _originalPureValue[ 0 ], 

                _investment[
1 /  _originalPureValue[ 1 ],

                _investment[
2 /  _originalPureValue[ 2 ],

                _investment[
3 /  _originalPureValue[ 3 ],

                _investment[
4 /  _originalPureValue[ 4 ],

                _investment[
5 /  _originalPureValue[ 5 ],

              };



        
static   void  Main( string [] args)

        {

            {

                ()

            }

            
#region  下载数据

            
string  pageHtml  =   "" ;

            
try

            {

                WebClient aWebClient 
=   new  WebClient();

                
//  获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

                aWebClient.Credentials 
=  CredentialCache.DefaultCredentials;

                
//  从指定网站下载数据

                Byte[] pageData 
=  aWebClient.DownloadData( " http://finance.sina.com.cn/realstock/js/openfundjs.js " );

                
//  如果获取网站页面采用的是GB2312,则使用这句              

                pageHtml 
=  Encoding.Default.GetString(pageData);

                
//  如果获取网站页面采用的是UTF-8,则使用这句

                
//  string pageHtml = Encoding.UTF8.GetString(pageData);

            }

            
catch  (WebException webE)

            {

                Console.WriteLine(webE.Message.ToString());

            }

            
#endregion  下载数据结束

            
#region  数据整理

            pageHtml 
=  pageHtml.Replace( " " " "" );

            
string [] data  =  pageHtml.Split( ' ; ' );

            ArrayList foundataArray 
=   new  ArrayList();

            
for  ( int  i  =   2 ; i  <  data.Length  -   1 ; i ++ ) //  data[0,1]内有不相关内容

            {

                data[i] 
=  data[i].Remove( 0 1 );

                
string [] aFoundationInfo  =  data[i].Split( ' | ' );

                FoundationData fd;

                aFoundationInfo[
0 =  aFoundationInfo[ 0 ].Substring(aFoundationInfo[ 0 ].IndexOf( ' = ' ) + 2 6 );

                

                
for  ( int  j  =   0 ; j  <  _foundationNames.Length; j ++ )

                {

                    
if  (aFoundationInfo[ 1 ==  _foundationNames[j])

                    {

                        fd._code 
=  aFoundationInfo[ 0 ];

                        fd._name 
=  aFoundationInfo[ 1 ];

                        fd._tDay 
=  aFoundationInfo[ 2 ];

                        fd._tSub1Day 
=  aFoundationInfo[ 3 ];

                        fd._growRate 
=  aFoundationInfo[ 4 ];

                        fd._pureValue 
=  aFoundationInfo[ 5 ];

                        foundataArray.Add(fd);

                    }



                }

            }

            
#endregion  数据整理结束

            

            
#region  打印基金信息

            Console.WriteLine(
" 编号     名称                昨日净值        前日净值        增长率        累积净值 " );

            
foreach  (FoundationData of  in  foundataArray)

            {

                Console.WriteLine(
" {0}{1}{2}{3}{4}{5} " ,

                    PadRightTrueLen(of._code, 
9 '   ' false ),

                    PadRightTrueLen(of._name, 
20 '   ' false ),

                    PadRightTrueLen(of._tDay, 
16 '   ' false ),

                    PadRightTrueLen(of._tSub1Day, 
16 '   ' false ),

                    PadRightTrueLen(of._growRate, 
15 '   ' false ),

                    of._pureValue);

            }

            
#endregion  打印基金信息结束

            
#region  投资回报计算



            
#endregion  投资回报计算结束

        }

        

        
public   static   int  TrueLength( string  str)

        {

            
int  lenTotal  =   0 ;

            
int  n  =  str.Length;

            
string  strWord  =   "" ;

            
int  asc;

            
for  ( int  i  =   0 ; i  <  n; i ++ )

            {

                strWord 
=  str.Substring(i,  1 );

                asc 
=  Convert.ToChar(strWord);

                
if  (asc  <   0   ||  asc  >   127 )

                {

                    lenTotal 
=  lenTotal  +   2 ;

                }

                
else

                {

                    lenTotal 
=  lenTotal  +   1 ;

                }

            }

            
return  lenTotal;

        }



        
public   static   string  PadRightTrueLen( string  strOriginal,  int  maxTrueLength,  char  chrPad,  bool  blnCutTail)

        {

            
string  strNew  =  strOriginal;



            
if  (strOriginal  ==   null   ||  maxTrueLength  <=   0 )

            {

                strNew 
=   "" ;

                
return  strNew;

            }



            
int  trueLen  =  TrueLength(strOriginal);

            
if  (trueLen  >  maxTrueLength)

            {

                
if  (blnCutTail)

                {

                    
for  ( int  i  =  strOriginal.Length  -   1 ; i  >   0 ; i -- )

                    {

                        strNew 
=  strNew.Substring( 0 , i);

                        
if  (TrueLength(strNew)  ==  maxTrueLength)

                        {

                            
break ;

                        }

                        
else   if  (TrueLength(strNew)  <  maxTrueLength)

                        {

                            strNew 
+=  chrPad.ToString();

                            
break ;

                        }

                    }

                }

            }

            
else //  填充

            {

                
for  ( int  i  =   0 ; i  <  maxTrueLength  -  trueLen; i ++ )

                {

                    strNew 
+=  chrPad.ToString();

                }

            }



            
return  strNew;

        }

    }

}

 
 

你可能感兴趣的:(String,struct,System,Class,byte,internet)