FMWorx LLC Ответов: 2

Преобразование из php в vb?


Может ли кто-нибудь, пожалуйста, преобразовать этот кусок php-кода во что-то, что будет работать в vb или c#?
Спасибо заранее.:

function generate_serial() {
    static $max = 60466175; // ZZZZZZ in decimal
    return strtoupper(sprintf(
        "%05s-%05s-%05s-%05s-%05s",
        base_convert(mt_rand(0, $max), 10, 36),
        base_convert(mt_rand(0, $max), 10, 36),
        base_convert(mt_rand(0, $max), 10, 36),
        base_convert(mt_rand(0, $max), 10, 36),
        base_convert(mt_rand(0, $max), 10, 36)
    ));

2 Ответов

Рейтинг:
2

thatraja

Вы не можете получить 100% конверсию. Вы должны сделать много ручных изменений.
Проверьте этот прошлый ответ Сергея Александровича Крюкова.
Как конвертировать php В C#[^]
И проверьте этот пост в блоге.
Преобразование кода .NET - преобразование вашего кода[^]


CPallini

5. Нет автоматический вообще-то, обращение...:-)

Рейтинг:
0

CPallini

Мой C# попытка:

class Program
{

  public static string tobase36(int n)
  {
    char [] s = new char [5]{ '0','0','0','0','0'};
    int k = 4;
    while (n > 0)
    {
      int c = n % 36;
      s[k] = (char)(c < 10 ? ('0' + c) : ('A' + c-10));
      n /= 36;
      k--;
    }
    return new string(s);
  }
  public static string generate_serial(Random r)
  {
    const int MAX = 60466175;
    string[] a = new string[5];
    for (int n = 0; n < 5; n++)
    {
      int v = r.Next() % MAX;
      a[n] = tobase36(v);
    }
    return string.Format("{0}-{1}-{2}-{3}-{4}", a[0], a[1], a[2], a[3], a[4]);
  }

  public static void Main()
  {
    Random r = new Random();
    Console.WriteLine(generate_serial(r));
  }