johnjsm Ответов: 2

Как добавить случайные числа в конец строки


Привет,
Я генерирую случайную строку и хочу, чтобы она была одинаковой длины каждый раз, но она может варьироваться от 24 до 29 символов. Если я хочу, чтобы она была 30, как я могу дополнить конец строки случайными числами, чтобы она всегда была длиной 30 символов? Так что, если его 24 символов он хотел добавить 6 дополнительных персонажей, или если ее 25 было бы добавить 5 дополнительных случайных символов

Что я уже пробовал:

Попробовал сделать его длиннее 30 и удалить символы, но не смог заставить его работать

DateCode - это просто дата, отформатированная определенным образом.
Существует функция для вычисления CRC32 строки
В списке есть список уникальных сериалов

Сгенерированный CRC32 может варьироваться по длине, которую я заметил только при тестировании 5000 серий.

For Each item As String In lstserials.Items
           
          file.WriteLine(item & "," & "PB" & LocationCode & txtReference.Text & DateCode & Crc32CalcString(System.Guid.NewGuid.ToString() & DateAndTime.Now.ToString & item))
            

        Next

Richard Deeming

Если вы хотите, чтобы мы помогли вам исправить ваш код, то вам нужно показать нам соответствующие части вашего кода.

Нажмите на зеленую ссылку "улучшить вопрос" и обновите свой вопрос, чтобы показать код, который у вас есть в данный момент, и объяснить, что вы пробовали и где застряли.

Richard MacCutchan

Вы обновили свой пост, но добавленный вами код не имеет никакого отношения к исходному вопросу.

2 Ответов

Рейтинг:
2

phil.o

Public Function PadString (length As Integer, original As String) As String
   Dim len As Integer = original.Length
   If len > length
      original = original.SubString(length)
   Else if len < length
      Dim rand As New Random
      While original.Length < length
         original += rand.Next(1, 10).ToString()
      End While
   End If
   Return original
End Function

Там могут быть некоторые более красивые/быстрые/умные способы, это просто быстрое кодирование от кого-то, кто больше не делает VB так много.


Рейтинг:
1

Richard MacCutchan

Dim line As String
Dim lco As Integer
line = "the quick brown fox jumps"
Console.WriteLine("line: {0}, count: {1}", line, line.Count)
lco = line.Count
While lco < 30
    line += "*"
    lco += 1
End While
Console.WriteLine("line: {0}", line)