Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cannot convert 'AnsiString' to 'const char *', Как сделать MessageBox 
V
    Опции темы
Stentor
Дата 14.3.2006, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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);


Чего бы такое написать, чтобы в сообщении было: «Не найден: Петров»? Как правильно сделать?

PM MAIL   Вверх
maxim1000
Дата 14.3.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



вроде бы так...
Код

(AnsiString("не найден:")+name).c_str()



--------------------
qqq
PM WWW   Вверх
Stentor
Дата 14.3.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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);
PM MAIL   Вверх
Stentor
Дата 14.3.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



???????
PM MAIL   Вверх
tigger
Дата 14.3.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: 2
Всего: 4



Я обычно делал так

выношу строку перед MessageBox

Код


AnsiString str;

str = " Не найден:";

//
// код какой-нибудь
//

str = str + name;
MessageBox(0,str.c_str()," Запись не найдена",0); 



если не поможет попробуй через Application->MessageBoxA();


--------------------
user posted image
PM MAIL   Вверх
CatOleg
Дата 14.3.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.7.2005
Где: Запорожье

Репутация: нет
Всего: нет



AnsiString name,ErrorMessage;
name = Edit1->Text;
ErrorMessage = "Не найден : " + name;
Application->MessageBoxA(ErrorMessage.c_str(),"Error",0);
PM MAIL WWW   Вверх
maxim1000
Дата 14.3.2006, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата(Stentor @ 14.3.2006, 10:45 Найти цитируемый пост)
Оба варианта работают без ошибок, только не делают т0, что надо. В результате выдает только «Не найден:». А фамилию не пишет. Что я не так делаю?

хм... единственное, что могу предположить - что-то не то с заполнением name...
специально запустил Builder
в OnCreate формы поставил такие строчки:
Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  AnsiString name="qqq";
  MessageBox(0,(AnsiString("aaa:")+name).c_str(),"www",MB_OK);
}

при запуске выдало "aaa:qqq"...


--------------------
qqq
PM WWW   Вверх
Stentor
Дата 15.3.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 10.12.2005

Репутация: нет
Всего: нет



maxim1000,

AnsiString name;
MessageBox(0,(AnsiString("Не найдено:")+name).c_str()," Запись не найдена ",0);

- работает как положено. А вчера не хотело. Похоже, что я скобочку одну пропустил. Только тогда не пойму как прога откомпилировалась без ошибок…

Тему можно закрывать. Спасибо всем!

PM MAIL   Вверх
Aver91
Дата 16.7.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Aver91
Дата 16.7.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 8.5.2009

Репутация: нет
Всего: нет



проблема решилась.
Код

Edit3->Text.c_str()

PM MAIL   Вверх
WebS
Дата 28.11.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 1.6.2008

Репутация: нет
Всего: -3



а у ми такой вопрос:


Код

    file=AnsiString(P).c_str();
    SetFileAttributes (file+"//x.exe",FILE_ATTRIBUTE_HIDDEN);


ошибка.., как норм сложить их?
--------------------
Услуги web мастера... php+sql, вёрстка, дизайн, программирование, и.д.р
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 28.11.2009, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



char* не поддерживает конкатинацию плюсом, тока AnsiString. Можно к AnsiString приплюсовать char*. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
WebS
Дата 28.11.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 1.6.2008

Репутация: нет
Всего: -3



Спасибо, всё ок smile
--------------------
Услуги web мастера... php+sql, вёрстка, дизайн, программирование, и.д.р
PM MAIL WWW ICQ   Вверх
123lexx321
Дата 30.1.2011, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



у меня похожий вопрос. Нужно значения матрицы переписать в массив
пишу b[c++]=StrToInt(StringGrid1->cells[col][row]);
ошибка 
' ' is not a valid integer value

Уже который день мучаюсь чувствую что ушёл куда то в дебри
PM MAIL   Вверх
Dem_max
Дата 30.1.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



ну не знаю у меня все работает
Код

StringGrid1->Cells[1][1] = "2";
int q = StrToInt(StringGrid1->Cells[1][1]);




--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1331 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.