<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<Script Language="VB" Runat="Server">
  '此函数用来访问计数器文件
  Function Counter(CounterFile As String) As Long
    '从文件读取计算器的数值
   Dim Counter as long
   Counter=0
    Dim objReader As New StreamReader(Server.MapPath(CounterFile))
    Counter = objReader.ReadLine()
    objReader.Close()
            '判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
    If Session.IsNewSession = True Then
      Counter += 1
      Dim objWriter As New StreamWriter(Server.MapPath(CounterFile), False)  
      objWriter.WriteLine(Counter)
      objWriter.Close()
    End If
   Return Counter
  End Function  '此函数将数字体计数器转换为图形计数器
  Function Img(Counter As String) As String
    Dim Img As String 
    Img=""
    Dim I As Byte
    For I = 1 To Len(Counter)
      Img = Img & "<Img Src=digit" & Mid(Counter, I, 1) & ".gif>"
    Next
    Return Img
  End Function
</Script>

解决方案 »

  1.   

    不对吧
    我感觉Counter = objReader.ReadLine()里的Counter
    应该是他定义的Counter函数吧
    用C#怎么写呀?谢谢!!!
      

  2.   

    return很简单啊,你只要保证你的函数里每一条路径都有return就行了
      

  3.   

    /*'此函数用来访问计数器文件
      Function Counter(CounterFile As String) As Long
    '从文件读取计算器的数值
    Dim objReader As New StreamReader(Server.MapPath(CounterFile))
    Counter = objReader.ReadLine()
    objReader.Close()
        
    '判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
    If Session.IsNewSession = True Then
      Counter += 1
      Dim objWriter As New StreamWriter(Server.MapPath(CounterFile), False)  
      objWriter.WriteLine(Counter)
      objWriter.Close()
    End If
      End Function
    */
    long Counter(string CounterFile)
    {
    //从文件读取计算器的数值
    StreamReader objReader = new StreamReader(Server.MapPath(CounterFile));
    long l = objReader.ReadLine();
    objReader.Close();

    //判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
    if(Session.IsNewSession == true )
    {
    l++;
    StreamWriter objWriter = new StreamWriter(Server.MapPath(CounterFile), False);
    objWriter.WriteLine(Counter);
    objWriter.Close();
    }
    } /*
      '此函数将数字体计数器转换为图形计数器
      Function Img(Counter As String) As String
    Dim I As Byte
    For I = 1 To Len(Counter)
      Img = Img & "<Img Src=digit" & Mid(Counter, I, 1) & ".gif>"
    Next
      End Function
    */
    string Img(string Counter )
    {
    string str = "";
    for(byte i=1;i<=Counter;i++)
    str += "<Img Src=digit" + Mid(Counter, I, 1) + ".gif>";
    return str;
    }
      

  4.   

    抱歉,忘了一句话 /*'此函数用来访问计数器文件
      Function Counter(CounterFile As String) As Long
    '从文件读取计算器的数值
    Dim objReader As New StreamReader(Server.MapPath(CounterFile))
    Counter = objReader.ReadLine()
    objReader.Close()
        
    '判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
    If Session.IsNewSession = True Then
      Counter += 1
      Dim objWriter As New StreamWriter(Server.MapPath(CounterFile), False)  
      objWriter.WriteLine(Counter)
      objWriter.Close()
    End If
      End Function
    */
    long Counter(string CounterFile)
    {
    //从文件读取计算器的数值
    StreamReader objReader = new StreamReader(Server.MapPath(CounterFile));
    long l = objReader.ReadLine();
    objReader.Close();

    //判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
    if(Session.IsNewSession == true )
    {
    l++;
    StreamWriter objWriter = new StreamWriter(Server.MapPath(CounterFile), False);
    objWriter.WriteLine(Counter);
    objWriter.Close();
    }
    return l;
    } /*
      '此函数将数字体计数器转换为图形计数器
      Function Img(Counter As String) As String
    Dim I As Byte
    For I = 1 To Len(Counter)
      Img = Img & "<Img Src=digit" & Mid(Counter, I, 1) & ".gif>"
    Next
      End Function
    */
    string Img(string Counter )
    {
    string str = "";
    for(byte i=1;i<=Counter;i++)
    str += "<Img Src=digit" + Mid(Counter, I, 1) + ".gif>";
    return str;
    }
      

  5.   

    To: dongqgc (奇奇) 
    不对吧
    我感觉Counter = objReader.ReadLine()里的Counter
    应该是他定义的Counter函数吧
    //这里的objReader.ReadLine()
    //里的Counter是直接读取文件中的第一行,把该数字读出来
    //你可以使用Counter=System.Convert.Toint32()把他转换过来。
    //我开始定义counter是怕如果读取文件中的数字为空。那么不能返回空字符。故设置
    //counter=0
     用C#怎么写呀?谢谢!!!
    //c#的写法基本一致。你到底是使用vb.net or c#
      

  6.   

    sunny6281兄,非常感谢你那么详细地我讲解
      

  7.   

    C#写法如下,请参考'此函数用来访问计数器文件
     public long  Counter( String CounterFile) 
        '从文件读取计算器的数值
      long Counter=0;
      StreamReader objReader = New StreamReader(Server.MapPath(CounterFile));
      string tempCounter = objReader.ReadLine();
      Counter=System.Convert.Toint32(tempCounter);
        objReader.Close();
        '判断是否为新创建的 Session 对象,是才将 Counter 变量加 1,并写入文件
        if (Session.IsNewSession == True )
        {
           Counter += 1;
          StreamWriter objWriter =New StreamWriter(Server.MapPath(CounterFile), False)  ;
          objWriter.WriteLine(Counter);
          objWriter.Close();
       }
       Return Counter;
    }public string Img(String Counter)
    {
     String Img="";
     int i;
      For(I = 1 ; Len(Counter);I++)
      {
          Img = Img + "<Img Src=digit" & Mid(Counter, I, 1) & ".gif>";
       }    
    Return Img;
    }