![]() |
|
![]() ![]() ![]() |
|
Stentor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2005 Репутация: нет Всего: нет |
Копутер пишет «Cannot convert 'AnsiString' to 'const char *'» Как конвертировать???
Вообще, задача такая: Идёт поиск в БД по фамилии, если запись не найдена, то появляется сообщение (не найдено) AnsiString name; name=Edit1->Text; MainForm->Table1->Locate("Фамилия",name,TLocateOptions() << loCaseInsensitive); if(!MainForm->Table1->Locate("Фамилия",name,TLocateOptions() << loCaseInsensitive)) MessageBox(0," Не найден: "+name," Запись не найдена ",0); Чего бы такое написать, чтобы в сообщении было: «Не найден: Петров»? Как правильно сделать? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
вроде бы так...
-------------------- qqq |
|||
|
||||
Stentor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2005 Репутация: нет Всего: нет |
1. MessageBox(0,(" Не найден: "+name).c_str()," Запись не найдена ",0); 2. AnsiString("не найден:")+name).c_str() Оба варианта работают без ошибок, только не делают т0, что надо. В результате выдает только «Не найден:». А фамилию не пишет. Что я не так делаю? AnsiString name; name=Edit1->Text; MainForm->Table1->Locate("Фамилия",name,TLocateOptions() << loCaseInsensitive); if(!MainForm->Table1->Locate("Фамилия",name,TLocateOptions() << loCaseInsensitive)) MessageBox(0,(" Не найден: "+name).c_str()," Запись не найдена",0); |
|||
|
||||
Stentor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2005 Репутация: нет Всего: нет |
???????
|
|||
|
||||
tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: 2 Всего: 4 |
Я обычно делал так
выношу строку перед MessageBox
если не поможет попробуй через Application->MessageBoxA(); |
|||
|
||||
CatOleg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 14.7.2005 Где: Запорожье Репутация: нет Всего: нет |
AnsiString name,ErrorMessage;
name = Edit1->Text; ErrorMessage = "Не найден : " + name; Application->MessageBoxA(ErrorMessage.c_str(),"Error",0); |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
хм... единственное, что могу предположить - что-то не то с заполнением name... специально запустил Builder в OnCreate формы поставил такие строчки:
при запуске выдало "aaa:qqq"... -------------------- qqq |
||||
|
|||||
Stentor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2005 Репутация: нет Всего: нет |
maxim1000,
AnsiString name; MessageBox(0,(AnsiString("Не найдено:")+name).c_str()," Запись не найдена ",0); - работает как положено. А вчера не хотело. Похоже, что я скобочку одну пропустил. Только тогда не пойму как прога откомпилировалась без ошибок… Тему можно закрывать. Спасибо всем! |
|||
|
||||
Aver91 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.5.2009 Репутация: нет Всего: нет |
чтобы тем не плодить, отвечу тут. возникла такая же проблема, как заголовок темы. суть в чем. в компонент Edit вводится слово или словосочетание. это будет строка ansistring. эту строку нужно перевести в символьный массив типа char, для записи в файл и прочей работой как с обычной строкой( под обычной строкой подразумеваю последовательность char символов, ограниченных '\0'), либо прошу подсказать функции для работы со строкой ansistring, подобные:
1)strlen 2)strcopy 3)fputs/fgets/fgetc для ansistring 4)и подобные Это сообщение отредактировал(а) Aver91 - 16.7.2009, 19:57 |
|||
|
||||
Aver91 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 8.5.2009 Репутация: нет Всего: нет |
проблема решилась.
|
|||
|
||||
WebS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 1.6.2008 Репутация: нет Всего: -3 |
а у ми такой вопрос:
ошибка.., как норм сложить их? --------------------
Услуги web мастера... php+sql, вёрстка, дизайн, программирование, и.д.р |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
char* не поддерживает конкатинацию плюсом, тока AnsiString. Можно к AnsiString приплюсовать char*.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
WebS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 1.6.2008 Репутация: нет Всего: -3 |
Спасибо, всё ок
![]() --------------------
Услуги web мастера... php+sql, вёрстка, дизайн, программирование, и.д.р |
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
у меня похожий вопрос. Нужно значения матрицы переписать в массив
пишу b[c++]=StrToInt(StringGrid1->cells[col][row]); ошибка ' ' is not a valid integer value Уже который день мучаюсь чувствую что ушёл куда то в дебри |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
ну не знаю у меня все работает
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
у меня b[] объявлен как char, ну и соответственно все элементы матрицы символы. может можно как то проще вывести элементы из StringGrid в Label (в определённом порядке)
Это сообщение отредактировал(а) 123lexx321 - 30.1.2011, 12:03 |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
объяви как int
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
у меня b[] объявлен как char, ну и соответственно все элементы матрицы символы. может можно как то проще вывести элементы из StringGrid в Label (в определённом порядке)
|
|||
|
||||
Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
тогда проще
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Итог тот же. is not a valid integer value
Вообще лечше весь код выложу чтоб было понятно что куда
цикл начинается с центра матрицы, на нем же и ошибка появляется Это сообщение отредактировал(а) 123lexx321 - 1.2.2011, 18:36 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Ну тогда StrToInt имеет полное право бросать эксепщены - она ожидает увидеть на входе строку с числом в ней, а не произвольный символ. Т.е. "0", "123" или "8765" подойдут, а "Число" - даст эксепшен Если вам нужен код первого символа из ячейки грида, то так и пишите:
И то сломается, если в ячейке грида будет пустая строка (т.е. не будет у нее первого символа) |
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Грид - это 2х мерный массив. Label - это 1 строка. Как вы представляете себе вывод 2х мерного массива в виде 1 строки? Если вам надо соединить вместе текст из всех ячеек грида и вывести то, что получилось, то так и пишите:
|
||||
|
|||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
сделал как написано. выдаёт illegal structure operation |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
потому что за пределы Cells[col][row]; наверное выходим
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
да нет, начинается как раз с центра матрицы, как и задумано.... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
вот
Это сообщение отредактировал(а) 123lexx321 - 4.2.2011, 19:54 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
В строке 44 тип переменной b должен быть не массив символов, а AnsiString. Внимательно посмотрите мое исходное сообщение - строка 1 в листинге
|
|||
|
||||
123lexx321 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Да точно. Ох уж эта моя невнимательность. Спасибо большое. Все заработало. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |