Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/56: Рейтинг темы: голосов - 56, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9

Как дополнить строку пробелами до нужного количества символов?

15.08.2011, 18:25. Показов 12076. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!

Сабж. Нужен аналог функции Pad (PadRight) из других языков

Зачем это нужно?
Хочу в Select сделать иллюзию нескольких столбцов.
Может быть кто подскажет и лучшее решение...

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.08.2011, 18:25
Ответы с готовыми решениями:

Дополнить строку до 40 символов пробелами в конце строки
Ввести две отдельных строки, содержащие по меньшей мере по 4 слова. Дополнить вторую строку до 40 символов пробелами в конце строки.

Определить строку максимальной длины, остальные компонент массива дополнить пробелами в начале строк
Кто разбирается подскажите пожалуйста!:cry: Задан массив строк. Определить строку максимальной длины, остальные компонент массива...

Округлить число до нужного количества символов
Неужели придётся писать подобную функцию, кто знает, подскажите!

14
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
15.08.2011, 19:54
sprintf('%-40s', $string); //вместо 40 нужное кол-во пробелов

Думаю не поможет ... у 'W' ширина больше чем скажем у 'I'...
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
15.08.2011, 20:01  [ТС]
спасибо!

а если шрифт моноширинный выбрать...?
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
15.08.2011, 20:08  [ТС]
что-то не нахожу в справке по JavaScript функции sprintf :-((

уже сам догадываюсь как можно сделать - через string.length
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
15.08.2011, 22:49
блин, сорри, форум перепутал
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
16.08.2011, 10:03
я бы решил эту задачу с помощью обычного цикла.
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 11:18  [ТС]
спасибо - JavaScript победил

борюсь с другой проблемой:
задаю в asp.net listbox значение 'AAA 111'
на клиенте получаю 'AAA 111'

но это уже оффтоп для этого форума...
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 11:21  [ТС]
забавно, здесь тоже пробелы удаляются :-))
имел ввиду: 'AAA(15 пробелов)111'
на клиенте получаю 'AAA(1 пробел)111'

может кто подскажет, как решить проблему с пробелами?
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
16.08.2011, 11:27
А кто сказал что они удаляются? Посмотри ХТМЛ код страницы.
Дело тут уже в другом, как грится ХТМЛ стандарт, чтобы получить пробелы на экране,
надо их заменить на спецсимвол ' '.
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 11:52  [ТС]
я это вроде знаю..., но как вставить option c ' ' в select ?
может пример приведешь? - у меня не получилось

вот кстати код функции и работает на клиенте отлично:
а вот result = result + ' ' - не катит ни в JavaScript ни в C#
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function padRight(input, totalWidth)
            {
                var result = input;
                if (result.length < totalWidth){
                    for(var i = result.length; i < totalWidth; i++){
                        result = result + ' '
                    }
                
                }
                return result;
            }
а вот на код C#, хотя там есть стандартная функция Pad :-))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private string padRight(string input, int totalWidth)
        {
            string result = input;
            if (result.Length < totalWidth)
            {
                for(int i = result.Length; i < totalWidth; i++)
                {
                    result = result + ' ';
                }
            }
                
            return result;
        }
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 12:01  [ТС]
т. е. на клиенте пробелы в select отображаются нормально
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
16.08.2011, 12:28
Ты лучше скажи, это будет работать для всех или только у тебя в конторе?
Под какой браузер пишешь?
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 12:40  [ТС]
я хочу запатентовать вышеприведенный код, надеюсь заработать кучу бабок...

работаю на дядю, asp.net + IE6.0
страница работает как надо - надо только проблему с листбоксом решить
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
16.08.2011, 12:52
Есть такой вот объект
PHP/HTML
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<form action='' name=form>
<OBJECT ID='combo' name=combo
CLASSID='CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3'
STYLE='TOP:47pt;LEFT:62pt;WIDTH:200pt;
HEIGHT:18pt;TABINDEX:0;ZINDEX:0;'>
<PARAM NAME='VariousPropertyBits' VALUE='746608667'>
<PARAM NAME='DisplayStyle' VALUE='3'>
<PARAM NAME='BoundColumn' VALUE='0'>
<PARAM NAME='TextColumn' VALUE='65535'>
<PARAM NAME='ColumnCount' VALUE='3'>
<PARAM NAME='ListRows' VALUE='10'>
<PARAM NAME='cColumnInfo' VALUE='1'>
<PARAM NAME='MatchEntry' VALUE='1'>
<PARAM NAME='ListStyle' VALUE='1'>
<PARAM NAME='ShowDropButtonWhen' VALUE='2'>
<PARAM NAME='ShowListWhen' VALUE='1'>
<PARAM NAME='DropButtonStyle' VALUE='1'>
<PARAM NAME='MultiSelect' VALUE='0'>
<PARAM NAME='Value' VALUE=''>
<PARAM NAME='Caption' VALUE=''>
<PARAM NAME='PicturePosition' VALUE='458753'>
<PARAM NAME='BorderColor' VALUE='2147483654'>
<PARAM NAME='SpecialEffect' VALUE='2'>
<PARAM NAME='Accelerator' VALUE='1'>
<PARAM NAME='GroupName' VALUE=''>
<PARAM NAME='FontName' VALUE='Arial'>
<PARAM NAME='FontEffects' VALUE='1073741824'>
<PARAM NAME='FontHeight' VALUE='195'>
<PARAM NAME='FontOffset' VALUE='0'>
<PARAM NAME='FontCharSet' VALUE='204'>
<PARAM NAME='FontPitchAndFamily' VALUE='2'>
<PARAM NAME='ParagraphAlign' VALUE='1'>
<PARAM NAME='FontWeight' VALUE='400'>
<PARAM NAME='Width' VALUE='0;500pt'>
</OBJECT>
 
<script type='text/javascript'>
form.combo.AddItem('000008', 0 ); form.combo.List(0, 1) = '48-й пикет'; form.combo.List(0, 2) = 'Адрес 1'; 
form.combo.AddItem('000449', 1 ); form.combo.List(1, 1) = 'Апраксинская ул.'; form.combo.List(1, 2) = 'Адрес 2';
form.combo.AddItem('000003', 2 ); form.combo.List(2, 1) = 'Базовая ул.'; form.combo.List(2, 2) = 'Адрес 3'; 
form.combo.AddItem('000004', 3 ); form.combo.List(3, 1) = 'Байдарская ул.'; form.combo.List(3, 2) = 'Адрес 4'; 
form.combo.AddItem('000005', 4 ); form.combo.List(4, 1) = 'Беговая ул.'; form.combo.List(4, 2) = 'Адрес 5'; 
form.combo.AddItem('000006', 5 ); form.combo.List(5, 1) = 'Безводная ул.'; form.combo.List(5, 2) = 'Адрес 6'; 
form.combo.AddItem('000007', 6 ); form.combo.List(6, 1) = 'Безымянный пер.'; form.combo.List(6, 2) = 'Адрес 7';  
</script>
 
 
<input type='submit'>
</form>
Будет работать в IE (4.0+ по моему) ... очень удобно и красиво если поиграть с параметрами.
0
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 9
16.08.2011, 13:11  [ТС]
спасибо - буду разбираться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2011, 13:11
Помогаю со студенческими работами здесь

Необходимо вывести NN строк, состоящих из нужного количества символов @. (c++)
Помогите, пожалуйста, решить лёгкую задачку с помощью цикла for! Буду вам очень благодарен! Дано N чисел Ai. Напишите программу,...

Сформировать строку, состоящую из первых символов слов, разделенных пробелами
Дана строка, состоящая из слов,разделенных пробелами. Сформировать строку,состоящую из первых символов слов, разделенных пробелами.

Если длина строки больше 10 - оставить первые 6 символов, иначе дополнить строку символами 'о'
Дана строка.Если ее длина больше 10,то оставить в строке только первые 6 символов,иначедополнить строку символами 'о' до длины 12.

Ввести с клавиатуры строку символов, состоящую из слов, разделенных пробелами, и записать ее в файл
Ввести с клавиатуры строку символов, состоящую из слов, разделенных пробелами, и записать ее в файл. Прочитать из файла данные и вывести...

Если ее длина больше 10, то оставить в строке только первые 6 символов, иначе дополнить строку символами 'o' до длины
Дана строка. Если ее длина больше 10, то оставить в строке только первые 6 символов, иначе дополнить строку символами 'o' до длины 12.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru