Што гэта VBScript функцыя Doing

У мяне ёсць функцыя ў VBScript, што ён робіць? як мага спрасціць з дапамогай C# 2.0.

Function FormatString(format, args)
    Dim RegExp, result

    result = format

    Set RegExp = New RegExp 

    With RegExp
        .Pattern = "\{(\d{1,2})\}"
        .IgnoreCase = False
        .Global = True
    End With

    Set matches = RegExp.Execute(result)

    For Each match In matches   
        dim index
        index = CInt(Mid(match.Value, 2, Len(match.Value) - 2))
        result = Replace(result, match.Value, args(index))
    Next
    Set matches = nothing
    Set RegExp = nothing

    FormatString = result
End Function

дзякуй!

1
Падобна на тое, VB.NET мне, а не VBScript - вельмі розных жывёл.
дададзена аўтар Tim, крыніца

3 адказы

Гэта не мае нічога агульнага з String.Format. Яна выкарыстоўвае рэгулярныя выразы супастаўлення з узорам.
дададзена аўтар Bradley Uffner, крыніца
Вы маеце рацыю, я прашу прабачэння.
дададзена аўтар Bradley Uffner, крыніца
Ці можаце вы прапанаваць з некаторым кодам ўзору !! дзякуй
дададзена аўтар Manoj Singh, крыніца
@BradleyUffner гэта з дапамогай рэгулярных выразаў шаблону рэалізаваць вельмі спрошчаны варыянт String.Format
дададзена аўтар Jon, крыніца

Гэта пошук радкі для ўсяго, што адпавядае зададзенаму шаблону назваў паведамленняў і замяніць яго якой-небудзь іншы радкі са спісу тых, хто прайшоў у функцыю.

На падставе маіх (абмежаваных) навыкаў з рэгулярным выразам, гэта, здаецца, шукае 1 або 2 лічбы колькасці ва ўваходны радку, і замяняючы іх значэннем у масіве, які перадаецца ў функцыю.

Here is some documentation from MSDN. http://msdn.microsoft.com/en-us/library/hs600312.aspx

It could be replaced with String.Format as documented here http://msdn.microsoft.com/en-us/library/system.string.format.aspx

І прыклад з звязанай старонкі па выкарыстанні.

DateTime dat = new DateTime(2012, 1, 17, 9, 30, 0); 
string city = "Chicago";
int temp = -16;
string output = String.Format("At {0} in {1}, the temperature was {2} degrees.",
                              dat, city, temp);
Console.WriteLine(output);
// The example displays the following output:
//    At 1/17/2012 9:30:00 AM in Chicago, the temperature was -16 degrees.   
1
дададзена

Я ператварыў код C #

static string FormatString(string format, string[] args)
{
    System.Text.RegularExpressions.Regex RegExp;
    System.Text.RegularExpressions.MatchCollection matches;
    string result;

    result = format;

    RegExp = new System.Text.RegularExpressions.Regex(@"\{(\d{1,2})\}", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    matches = RegExp.Matches(result);

    foreach (System.Text.RegularExpressions.Match match in matches)
    {
        int index;

        index = Convert.ToInt32(match.Value.Substring(1, match.Value.Length - 1));
        result = result.Replace(match.Value, args[index]);
    }

    matches = null;
    RegExp = null;

    return result;
}

калі ласка, дайце мне ведаць пра якіх-небудзь праблемах

1
дададзена