Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 28.12.2016, 12:41   #1 (permalink)
Filberd
Member
 
Регистрация: 17.03.2012
Адрес: Москва
Сообщений: 141
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 626
По умолчанию Инкрементирование строки

Всем привет. Можете помочь написать метод на C# Инкриминирующий строку, принимающую в качестве аргумента в виде массива типа char. Пример результата:
00000007 - 00000008
SVA00001 - SVA00002
Filberd вне форума   Ответить с цитированием

Старый 28.12.2016, 12:41
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Не ленитесь и прочитайте похожие топики, это очень помогает в решении проблем

Строки
Строки
Строки в С
Строки

Старый 28.12.2016, 13:24   #2 (permalink)
blackstrip
Member
 
Аватар для blackstrip
 
Регистрация: 29.06.2015
Адрес: Подольск
Сообщений: 34
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 699
По умолчанию

- откусить первые буквы (и запомнить их куда нить), оставив только цифры
- по длине оставшегося куска определить макс.число (для пятицифирного куска макс число "99999") и длину куска (например, 5 цифр)
- перевести кусок в число
- увеличить число на 1
- сравнить: если полученное число больше макс.числа, то обнулить число
- перевести число в строку
- докидать слева необходимое количество нулей (т.е. 99 станет 00099)
- докидать слева изначальную приставку если она была, для "00099" станет "SVA00099"
blackstrip вне форума   Ответить с цитированием
Старый 28.12.2016, 13:39   #3 (permalink)
Uncle Vasya
Member
 
Регистрация: 04.12.2016
Сообщений: 131
Сказал(а) спасибо: 25
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3445
По умолчанию

Можно пойти немного другим путём. Каждую строку обработать так:
1. Находим последний символ.
2. Если он цифровой, то
2.1. делаем инкремент, если получилось меньше 10, то всё, заканчиваем, иначе 9 меняем на 0 и п.3.
2.2. Иначе символ не цифровой, заканчиваем.
3. переходим на предыдущий символ, делаем с ним то же самое, что и в п.2

Я не спец по С#, но как мне кажется, так проще. И это позволяет обрабатывать строки любой длины и не бояться того, что при переводе строк в числа будет выход за диапазон.
Uncle Vasya вне форума   Ответить с цитированием
Старый 05.02.2017, 19:14   #4 (permalink)
Filberd
Member
 
Регистрация: 17.03.2012
Адрес: Москва
Сообщений: 141
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 626
По умолчанию

Спасибо, буду реализовывать
Filberd вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:22.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.