Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123

Как дополнить один из элементов текстового массива нулями

19.10.2015, 13:30. Показов 3113. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется строка А, где количество символов заранее неизвестно, может быть менее 56.25*4, а может быть и более этого значения.
C#
1
2
3
4
5
6
7
8
            A = richTextBox1.Text;      //Исходное сообщение
            int i = 0;
            foreach (char x1 in A)
            {
                B[nSymbol-1] += x1;     //Выбираем по 56.25*4 символов = 1800 бит
                i++;
                if (i == 56.25*4) { i = 0; nSymbol++; }
            }
nSymbol обозначает количество строчек в массиве строк B, в которые будут записаны значения массива А. Код работает шикарно, но если в каком-то элементе строкового массива B число символов меньше 56.25*4, то он так и получается по размерности, например, 56 символов. Мне надо , чтобы обязательно в каждом элементе было 56.25*4, то есть остаток строки заполнить нулями.
Как это оптимальнее всего сделать? Я бы начал громоздить переменные для подсчета символов в цикле foreach и дополнительные циклы, поэтому решил задать вопрос вам.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2015, 13:30
Ответы с готовыми решениями:

Дополнить нулями двоичное число
Нужно в открытом текстовом файле в строке n заменить область двоичным числом, причем после запятой должно быть обязательно два знака...

Дополнить числа нулями слева до 9 разрядов
Здравствуйте подскажите пожалуйста как вывести перед номером нули. например задача такая человек вводит номер паспорта девяти значный номер...

Строки. Нужно дополнить строку нулями слева
Нужно дополнить строку нулями слева. Например была строка str1="345" результат str2="0000000345" Нужно именно в С++. ...

24
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
21.10.2015, 18:34  [ТС]
Студворк — интернет-сервис помощи студентам
конкретная строка из массива-обращайтесь к ней по индексу
- так хотелось бы! А выдает ошибку.

int B111 = B1[1].Count;

Error 1 Cannot convert method group 'Count' to non-delegate type 'int'. Did you intend to invoke the method? C:\Users\engineer\Desktop\Step1_binFFT_v 2\Bin_creator\Bin_creator\FormM.cs 296 24 Bin_creator

Добавлено через 2 минуты
но скорее всего да
А можно ли завести глобальные массивы строк без указания количества элементов, а потом в коде задать это количество?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
21.10.2015, 19:36
Лучший ответ Сообщение было отмечено lennen как решение

Решение

Цитата Сообщение от lennen Посмотреть сообщение
А можно ли завести глобальные массивы строк без указания количества элементов, а потом в коде задать это количество?
Ну а лист-то чем не подходит? Он никак не зависит от количества-хочешь добавил, хочешь убрал.
Цитата Сообщение от lennen Посмотреть сообщение
int B111 = B1[1].Count;
Length вместо Count
1
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
22.10.2015, 12:18  [ТС]
Почти получилось! Как вместо пробелов добавить в конец "незаконченных" строк нули в бинарном виде, то есть "\0"?

Добавлено через 1 минуту
PadRight(225, '\0') Нашел!

Добавлено через 13 минут
О! Не получается исправить никак 1 строчку.

if (B[itmr - 1] != null) { B1 = B[itmr - 1]; Bdig[itmr - 1] = asbin(B1);} else { }
Вроде правильно написано? Для строки это работало. B1 существует и в случае массива строк, и в случае листинга.
Вот функция asbin(B1)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
string chr2(char c)
        {
            string s = ""; //Поставить " ", чтобы разделять каждые 8 бит 
            for (int i = 0; i < 8; c = (char)((byte)c >> 1))
            {
                ///////////////////Процесс формирования строки с бинарными данными/////////////////
                s = ((((byte)c & 1) != 0) ? "1" : "0") + "" + s;
 
                //////////////Процесс нахождения точек для графика с бинарными данными/////////////
                int s1 = ((((byte)c & 1) != 0) ? 1 : 0);
                list.Add(icount + chnum, s1);
 
                //////////Находим разницу между всеми битами для фазоразностной модуляции//////////
                sdif += (((s1 & s1_prev) != 0) ? "1" : "0");
                s1_prev = s1;       //Буфер прошлого значения s1
 
                icount--;
                i++;
            }
            chnum = chnum + 8;
            return s;
        }
        string asbin(string s)
        {
            string res = "";
 
            foreach (char c in s)
            {
                res += chr2(c);
                icount = 8;
            }
 
            return res;
        }
Почему выдает эксепшн и почему вообще может его выдавать? System.ArgumentOutOfRangeException. Отмечу, что когда оно выдало эксепшн, я посмотрел значение B1 - это:
B1 "Эти данные будут преобразованы в бинарные и представлены в виде графика при нажатии на кнопку. Отсюда нам нужно выбрать все значения и передавать их еще и циклично, поэтому для экономии времени и повышения скорости обработки " string
itmr = 1

Добавлено через 14 минут
Такое возможно вообще? В каком месте я могу быть слеп? Это магия?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.10.2015, 16:30
Я вообще ничего не понимаю в данном коде Эксепшен потому, что индекс, по которому вы обращаетесь, больше, чем количество элементов массива. Где именно-из данного кода мне не понятно.
0
0 / 0 / 2
Регистрация: 14.09.2014
Сообщений: 123
23.10.2015, 11:30  [ТС]
Да ок, я разобрался. Bdig же теперь Листинг, поэтому в него надо добавлять не с помощью =, а с помощью .Add... У меня теперь все работает без ограничений на размерность массивов. Поэтому спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2015, 11:30

Разбить массив на два и дополнить нулями в пропушенные месяца
Добрый день, уважаемые коллеги :senor: Что-то не идет мысль в голову =) Подскажите, пожалуйста, как лучше поступить? Из БД после...

Произведение элементов массива с четными индексами, сумма элементов между первым и последним нулями
Всем доброго времени суток! Помогите составить программу. Заранее благодарен! Вот условие: ...

В одномерном массиве, состоящем из n целых элементов, вычислить сумму элементов массива, между первым и последним нулями
В одномерном массиве, состоящем из n целых элементов, вычислить сумму элементов массива, расположенных между первым и последним нулевыми...

Вывести время двумя цифрами (однозначные числа дополнить слева нулями)
вывод этой программы такой 12:1:40 при вводимой переменной 129700 а надо Correct output: 12:01:40 как я должен сделать чтобы вывело...

Удаление элементов массива между нулями
как избавиться от чисел между нулями 1 2 3 0 6 8 9 0 7 5 4 ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru