Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: как дополнить строку до необходимой длины пробелам Добавлено: 22.02.07 16:18  

Автор вопроса:  RAVER | ICQ: 1005765 
как дополнить строку до необходимой длины пробелами
имею строку вида "абвгде" длиною 6 символов, конечная необходимая длина 10 символов.
т.е. хотелось бы видеть "абвгде "

ни у кого случайно нету такой функции:?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #1
Добавлено: 22.02.07 16:24
l = 10
s = "abvgd"
s = s & Space(l - Len(s))

Ответить

Номер ответа: 2
Автор ответа:
 RAVER



ICQ: 1005765 

Вопросов: 6
Ответов: 10
 Профиль | | #2 Добавлено: 22.02.07 16:25
спасибо

Ответить

Номер ответа: 3
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #3
Добавлено: 22.02.07 16:27
Строго говоря так:

l = 10
s = "abvgd"
s = left(s,l) & IIf(len(s)<l,Space(l-Len(s)),"";)

Ответить

Номер ответа: 4
Автор ответа:
 RAVER



ICQ: 1005765 

Вопросов: 6
Ответов: 10
 Профиль | | #4 Добавлено: 22.02.07 16:30
)Спасибо, меня и первый вариант устроил, я просто не знал о функции Space.

Ответить

Номер ответа: 5
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #5
Добавлено: 22.02.07 16:36
В .NET можно так:

Function AddSpace(ByVal txt as string, ByVal spacecount as integer) As String
dim i as integer
addspace=txt
for i=0 to i=spacecount
addspace=addspace+" "
next
End Function

Ответить

Номер ответа: 6
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 22.02.07 17:00
В дотнете вместо Space можно (и нужно) использовать

New String(10, " "c)

Может параметры местами перепутал, точно не помню :)

Ответить

Номер ответа: 7
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #7
Добавлено: 22.02.07 17:30
____ Всегда решал эту задачу "дубово" через функцию mid(). Добавлял необходимое число пробелов справа (в Вашем случае 10) и выделял первые символы (10 шт.). Такой способ работает быстро и не зависит от длины исходной строки. Например:
mid(str+"          ",1,10)

Ответить

Номер ответа: 8
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #8
Добавлено: 22.02.07 19:53
Да, точно...

l = 10
s = "abvgd"
s = Left(s&Space(l),l)

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 22.02.07 19:58
К сожалению, это решение из разряда "через жо".

Ответить

Номер ответа: 10
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #10
Добавлено: 22.02.07 20:00
Хотя что-то в этом есть :) Надо бенчмарк провести.

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 23.02.07 12:39
Можно так
Const L = 10
Dim a As String
Dim b As String * L
a="asdfa"
b=a
a=b

Ответить

Номер ответа: 12
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #12 Добавлено: 26.02.07 04:04
зачем усложнять
Dim a As String * 10 ' объявляю строковую переменную в 10 символов
  a = "asdfa" ' задаём строку
  Debug.Print a ' выводится строка в 10 символов (asdfa + 5 пробелов)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам