Просьба помочь трансформировать код с Cшарп в вижл бейсик

Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.

Модератор: gaidar

Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Просьба помочь трансформировать код с Cшарп в вижл бейсик

Сообщение kibernetics » 17.05.2014 (Сб) 19:30

Народ, всем привет! Всё реже заглядываю на форум.. и в этот раз снова за помощью. Есть код рандомайзера, работающий на энтропии системы, но правда под .net.
А мне нужно сделать кое-какое приложение под vb6.0 основанное на этом генераторе. Прошу поомощи, кто перешёл на c# и помнит ещё бейсик. Вот сам код:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PrefCraw.Game
{
    public class RandomCrypto
    {
        private Queue<byte> queue = new Queue<byte>();
        private int QueueBuffer = 1000;

        public RandomCrypto()
        {
        }

        public RandomCrypto(int queueBuffer)
        {
            QueueBuffer = queueBuffer;
        }

                public int NextInt(int maxValue)
        {
            return (int)(NextDouble() * maxValue);
        }

        public int NextInt(int minValue, int maxValue)
        {
            int num = maxValue - minValue;
            return (((int)(NextDouble() * num)) + minValue);
        }

        public T[] Shuffle<T>(T[] source)
        {
            T[] original = (T[])source.Clone();
            T[] result = new T[source.Length];

            for (int i = 0; i < original.Length; i++)
            {
                int pos = NextInt(original.Length - i);
                result[i] = original[pos];
                original[pos] = original[original.Length - i - 1];
            }
            return result;
        }

        public T[] Shuffle<T> (IEnumerable<T> source)
        {
            return Shuffle(source.ToArray());
        }

        private object LockObject = new object();
        public byte[] NextBytes(int length)
        {
            lock (LockObject)
            {
                if (queue.Count < length)
                    AppendBytes(Math.Max(length, QueueBuffer));

                byte[] buffer = new byte[length];
                for (int i = 0; i < length; i++)
                {
                    buffer[i] = queue.Dequeue();
                }
                return buffer;
            }
        }

            }
}
Последний раз редактировалось kibernetics 02.06.2014 (Пн) 3:58, всего редактировалось 1 раз.

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: Просьба помочь трансформировать код с Cшарп в вижл бейси

Сообщение Admiralisimys » 18.05.2014 (Вс) 22:40

Привет kibernetics.
Приведённый код это обёртка которая скрывает взаимодействие с .NET классом RNGCryptoServiceProvider, который является одним из криптографическим генератором случайных чисел (см. использование криптографического генератора случайных чисел).
По этому, поставленная задача, если требуется сопоставимая стойкость генерации, уже будет сводится не просто к переводу кода, но также реализации криптографического генератора случайных чисел на подобии RNGCryptoServiceProvider на VB6.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Просьба помочь трансформировать код с Cшарп в вижл бейси

Сообщение kibernetics » 29.05.2014 (Чт) 0:00

Admiralisimys - большое спасибо за разъяснение. Вопрос снимаю тогда.


Вернуться в Раздел для Профессионалов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList