Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 01:01   #1
Zibi
 
Регистрация: 24.06.2009
Сообщений: 4
По умолчанию Как сконвертировать AnsiString в char * ?

Есть проблема у меня програма , надо передать значения из Сишной програми а точнее из Edit1->Text в асемблер,ето надо чтоб считать Exe Header.Но я никак не могу передать ето значение в Асемблер помогите пожалуста.

И еще если ктото знает примери таких програм дайте ссилку , просто ето моя курсовая и какиби сроки поджимают)))) Заранее спасибо.
Zibi вне форума Ответить с цитированием
Старый 24.06.2009, 01:09   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Zibi
Как сконвертировать AnsiString в char * ?
Код:
AnsiString s = Edit1->Text;
char *p = new char[s.Length()];
strcpy(p,s.c_str());
Метод c_str() возвращает Си-строку.

Насчет асма не подскажу.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.06.2009, 20:45   #3
Zibi
 
Регистрация: 24.06.2009
Сообщений: 4
По умолчанию

Изивини за тупость но ти не могби прокоментировать кождую строку)))Пожалуста)
Zibi вне форума Ответить с цитированием
Старый 24.06.2009, 22:58   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
AnsiString s = Edit1->Text;
Объявляем переменную типа AnsiString и сразу присваиваем ей текст из Эдита.
Код:
char *p = new char[s.Length()];
Объявляем указатель на char и выделяем память под строку из s.Length() символов.
Код:
strcpy(p,s.c_str());
Копируем в выделенную память (строку) значение строки s в виде си-строки.

Можно было сразу написать
Код:
char *p = new char[Edit1->Text.Length()];
strcpy(p,Edit1->Text.c_str());
то есть без дополнительной переменной (s).

Когда p больше не нужна, нужно освободить память:
Код:
delete[] p;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.06.2009, 23:45   #5
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
char *p = new char[s.Length() + 1];
про '\0' забывать не нужно.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 25.06.2009, 01:06   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Сообщение от ISergeyN Посмотреть сообщение
Код:
char *p = new char[s.Length() + 1];
про '\0' забывать не нужно.
метод c_str() об этом уже позаботился (C string - по определению)

извиняюсь, все верно не так понял пост)

Последний раз редактировалось vvviperrr; 25.06.2009 в 01:13.
vvviperrr вне форума Ответить с цитированием
Старый 25.06.2009, 01:19   #7
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
метод c_str() об этом уже позаботился
А это здесь при чём?
Цитата:
извиняюсь, все верно не так понял пост)
Фух, а я уже подумал что тупеть начал.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 25.06.2009 в 01:24. Причина: ......
ISergeyN вне форума Ответить с цитированием
Старый 12.07.2009, 12:31   #8
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

А как выполнить обратное?
Сергей089 вне форума Ответить с цитированием
Старый 12.07.2009, 12:41   #9
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

char* a=(Memo1->Text).c_str()
а вообще, более подробно эту операцию я описал в своей теме MEMO
Dimarik вне форума Ответить с цитированием
Старый 12.07.2009, 12:54   #10
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Код:
Edit1->Text = p;
Можно так?
Сергей089 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Builder AnsiString преобразовать в Char ROD C++ Builder 3 07.04.2009 12:12
?Как сконвертировать отчет в пдф-файл в Акцессе2000? VVlad69 Microsoft Office Access 0 19.02.2009 20:17
из AnsiString в Char[] juden Общие вопросы C/C++ 6 20.05.2008 22:49
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17
Как обьявить переменную типа AnsiString глобально Kocapb Общие вопросы C/C++ 6 19.12.2007 05:05