Значение строки???!!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Значение строки???!!!!

Сообщение angelina » 04.02.2004 (Ср) 17:05

У меня есть переменная LastVariant as String
В ней я запоминаю значение например последней строки

В определенный момент эту переменную нужно обнулить, но таким образом, чтобы это обнуление отличалось от пустой строки (=""), поскольку пустая строка у меня считается ненулевым, а допустимым значением.
Может быть null? Я вроде все перепробовала, но никак не получается.
Помогите пожалуйста!!! Заранее всем огромное спасибо!!!

Sergey-13
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 119
Зарегистрирован: 23.01.2004 (Пт) 16:02
Откуда: Саранск

Сообщение Sergey-13 » 04.02.2004 (Ср) 19:18

если я правельно знаю, то переменная типа String сразу получается равным "" и значение null присвоено ей быть не может. опиши подробнее где это у тебя встречается?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 04.02.2004 (Ср) 20:03

Да чего тут описывать-то?
Тут есть только 2 варианта - либо в строку записывать какое-то специальное значение, которое будет восприниматься как признак "обнуленности", либо держать рядом булевскую переменную, которая будет показывать - считывать значение из строки или нет.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 05.02.2004 (Чт) 8:45

всем спасибо.
сделала вот так

LastVariant="", тогда значение StrPtr(LastVariant)=73249108
LastVariant=vbNullString, тогда значение StrPtr(LastVariant)=0

по StrPtr определяю обнуленность

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.02.2004 (Чт) 11:01

Советую так не делать.
Когда указываешь LastVariant="", то компилятор на каждый "" создает новую константу, поэтому у нее и другой адрес. Такое решение может вызвать кучу глюков при работе скомпилированной программы.
Rainbow уже указала два пути, используй любой. Я бы посоветовал первый, т.е. определи константу, например LastVariantEmpty = vbNullChar & "*" & vbNullChar, и сравнивай с ней.
Lasciate ogni speranza, voi ch'entrate.

angelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 89
Зарегистрирован: 13.11.2002 (Ср) 13:00

Сообщение angelina » 06.02.2004 (Пт) 10:41

спасибочки!!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2004 (Пт) 10:45

Почему, способ хороший :)
Не важно, что strptr("")<>0, а важно, что strptr(vbnullstring)=0 :)
Так что if strptr(lastvariant) then...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 5

    TopList