Страница: 1 | 2 |
Вопрос: символ пустой строки
Добавлено: 07.11.06 21:57
Автор вопроса: Alexander
есть такое или нет? хочу в одной прогрммке выход из цикла очуществлять, когда встречается пустая ячейка. как объяснить программе, что ячека пустая? может, есть какой-нить специальный символ?
Ответы
Всего ответов: 21
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 07.11.06 22:01
""
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 07.11.06 22:17
vbNullString
Номер ответа: 3
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #3
Добавлено: 07.11.06 22:17
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 07.11.06 22:32
if trim$(range("A1".text) = "" then exit for
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 07.11.06 22:50
ну и последнее, что осталось проверить, так это длину строки в ячейке.. )))
Номер ответа: 6
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #6
Добавлено: 07.11.06 22:51
if trim$(range(chr&b).text) = "" then exit for
Номер ответа: 7
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #7
Добавлено: 07.11.06 23:12
глупый мож вопрос, vbNullString = "" ???
Номер ответа: 8
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #8
Добавлено: 07.11.06 23:13
Конечно! )
Номер ответа: 9
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #9
Добавлено: 07.11.06 23:35
Подумал... Почему я сейчас перестал использовать такие громоздкие конструкции?..
Вспомнил - результат работы каждой переменной приходится проверять на Notihg, иначе *здец
PS Вот так вот писать нельзя:
Иначе капец будет
Зато в C# можно:
Нравится мне эта фишка сишарповая...
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 08.11.06 00:38
On Error Resume Next - ненадо проверять на Notihg
Ну оно конеч херовое решение, но все же...
Впрочем если переменная была
Dim as...
врядли она будет Notihg...
пока её принудительно ктонибуть не
Set переменная = Notihg
Номер ответа: 11
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #11
Добавлено: 08.11.06 01:11
Самый отстойный обработчик ошибок из всех которые только можно придумать.
Иногда еще встречаю в чужих VB .NEt-проектах офигенную обработку ошибок:
On Error Resume Next
' some code goes here
End Sub
За такое надо ставить и расстреливать
Ну или более .NET-овский вариант
Try
' some code here
Catch ex As Exception
End Try
End Sub
Ужос короче, тоже расстреливать нужно.
Как сказал в сердцах один готдотнетовец, "Если бы я мог переписать компилятор vbc, я бы сделал так, чтоб пустые блоки Catch считались ошибками"
врядли она будет Notihg...
Знаешь, трудно было объяснять заказчику, почему MyString.Length выдвал NullReferenceException... И тогда я впервые для себя обнаружил, что
объявляет строковую переменую. Но она, увы, равна не "", а Nothing.
Короче, вот, берите зубило и высекайте на мраморе:
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
If value IsNot Nothing Then
If value.Length > NameMaxLength Then
Throw New DataTooLongException(NameMaxLength)
End If
_Name = value
Else
_Name = ""
End If
End Set
End Property
Номер ответа: 12
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #12
Добавлено: 08.11.06 06:10
Иногда лучше жевать, чем говорить.
Конечно нет.
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 08.11.06 11:23
))
GSerg, блин.. ну вот взял и все испортил!
Надеюсь, ты понимаешь, что это было не серьезно?
Каков вопрос - таков ответ.. ))) Уж кто-кто, а Sacred Phoenix должен знать такие вещи, далеко не новичок.. )))
Я как то тоже на эти грабли наступил.. с тех пор при объявлении строковой переменной сразу инициализирую ее..
Номер ответа: 14
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #14
Добавлено: 08.11.06 16:16
А касательно vb2005:
Dim A As String
MessageBox.Show(CStr(A = "")
выдало True. Смотрю в Quick View'ере значение A. Пишет Nothing. Че за?
Номер ответа: 15
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 08.11.06 19:18
А ты попробуй выполнить это:
MessageBox.Show(A.Length)
И получишь NullReferenceExeption
Тоже самое ты получишь, если напишешь
Ибо в священном писании (MSDN from MS) четко написано:
Member of: Microsoft.VisualBasic.Constants
Summary:
When you call print and display functions, you can use the following constants in your code in place of the actual values.
И в НЕТ для объявления пустой строки рекомендуют использовать String.Empty