crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Валидность строки, тип QString
AD
  опции профиля:
сообщение 5.8.2008, 18:40
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Что-то я не понимаю, что за ерунда происходит: делаю проверку на isNull(), на isEmpty() - все это компилятор проглатывает, а строка так и остается невалидной. При присвоении другой строке он вылетает. Как исправить это глюк?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 5.8.2008, 19:01
Сообщение #2


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Цитата(AD @ 5.8.2008, 19:40) *
Что-то я не понимаю, что за ерунда происходит: делаю проверку на isNull(), на isEmpty() - все это компилятор проглатывает, а строка так и остается невалидной. При присвоении другой строке он вылетает. Как исправить это глюк?

В каком смысле не валидной? битый указатель?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 5.8.2008, 19:03
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(trdm @ 5.8.2008, 20:01) *
В каком смысле не валидной? битый указатель?

Не указатель, а строка. на строке проверки на !isEmpty() ломается. При этом проверку на !isNull() прошла нормально!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 5.8.2008, 19:06
Сообщение #4


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


кодом поделись как сломать строку %)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 5.8.2008, 20:10
Сообщение #5


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


а ты вообще чувствуешь разницу между null и has no characters(empty)?
строка является null, когда использован конструктор по умолчанию, т.е.
QString()

а пустой(empty, has no characters) она является в таком случае:
QString("")

теперь понятно? :)


в твоем случае, ты скорее всего делал так:
QString("")

т.к. именно в этом случае isNull вернет false, а isEmpty - true
и получится: !isNull() == true, !isEmpty() == false

Сообщение отредактировал void* - 5.8.2008, 20:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.8.2008, 20:11
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 5.8.2008, 23:03) *
на строке проверки на !isEmpty() ломается

AD, что значит ломается? Программа аврийно завершается? Изъясняйся по проще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 5.8.2008, 20:14
Сообщение #7


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


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

Сообщение отредактировал void* - 5.8.2008, 20:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.8.2008, 20:18
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(void* @ 6.8.2008, 0:14) *
т.к. ты присваеваешь всякий мусор,

я может что-то пропустил, но про присвоение я непомню???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 5.8.2008, 20:21
Сообщение #9


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


именно что пропустил
Цитата(AD @ 5.8.2008, 18:40) *
При присвоении другой строке он вылетает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.8.2008, 20:24
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


с тех пор он уже вот что написал:
Цитата(AD @ 5.8.2008, 23:03) *
на строке проверки на !isEmpty() ломается

я так понимаю, что уже до присвоения что-то не так.
---
бум ждать ответа от AD
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 16:23