Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AnsiString <=> String

4.0K
10 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Подскажите, пожалуйста, как переводить тип из AnsiString в String
например:

string S;
S = Edit1->text;
Edit2->Text = s; // в программе постоянно нужно перехлдить между типами.
Не очень удобно пользоваться Convert(Edit2->Text, s); // своя ф-ия

Еще есть функция Memo1->lines->SaveToFile.
Есть ли ченить аналогичное для Edit?
497
10 мая 2007 года
IL84
267 / / 24.04.2003
А простое присвоение String=AnsiString уже не модно?
4.0K
10 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Цитата: IL84
А простое присвоение String=AnsiString уже не модно?


Может из моды и не вышло...:rolleyes:

Не всё что модно работает:confused: . (у меня builder 6)

7.8K
11 мая 2007 года
Hrew
185 / / 23.04.2007
Цитата: ApokALEXIS
Не всё что модно работает


Что конкретно у Вас не работает?

Вот этот код что ли?

 
Код:
String S;
S = Edit1->text;
Edit2->Text = S;
497
11 мая 2007 года
IL84
267 / / 24.04.2003
Работает 100%
 
Код:
procedure Test();
var
  s : AnsiString;
  tmp : string;
begin
  s := tmp;
  s := 'test';
  tmp := s;
end;
7.3K
11 мая 2007 года
H010d Freeze
143 / / 08.08.2006
Какой string имеется в виду?

1. Если "String", то см. sysmac.h, там написано
typedef AnsiString String;
Стало быть и проблем с присваиванием по определению нет.
2. Если "std::string", т.е. из STL-строка... тогда присваивание через char* можно делать, типа так:
 
Код:
string stlS;
AnsiString vclS;
vclS = stlS.c_str();
stlS = vclS.c_str();
4.0K
11 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Цитата: Hrew
Что конкретно у Вас не работает?

Вот этот код что ли?
 
Код:
String S;
S = Edit1->text;
Edit2->Text = S;


в принципе да.

4.0K
11 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Цитата: IL84
Работает 100%
...



Это паскаль:)

Цитата: H010d Freeze
Какой string имеется в виду?

1. Если "String", то см. sysmac.h, там написано
typedef AnsiString String;
Стало быть и проблем с присваиванием по определению нет.
2. Если "std::string", т.е. из STL-строка... тогда присваивание через char* можно делать, типа так:
 
Код:
string stlS;
AnsiString vclS;
vclS = stlS.c_str();
stlS = vclS.c_str();



1 sysmac.h подключить надо?
2 Щас перезагружесь, попробую.

7.8K
12 мая 2007 года
Hrew
185 / / 23.04.2007
Цитата: Hrew
Что конкретно у Вас не работает?

Вот этот код что ли?

Код:
String S;
S = Edit1->text;
Edit2->Text = S;


Цитата: ApokALEXIS
в принципе да.


Типы String и AnsiString в билдере по умолчанию эквивалентны. Т.е. пишете String - подразумеваете AnsiString. И никаких преобразований из одного типа в другой не требуется. Единственное исключение - если Вы указываете размер String, например String S[50];.

Поэтому ответ Ваш ответ "в принципе да" ни о чем не говорит. Если есть ошибка - давайте кусок кода, который ее вызывает, и описание ошибки.

4.0K
12 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
 
Код:
string S;  // string с маленькой! (они ведь отличаются?)
S = Edit1->text;
Edit2->Text = S;


Вот ошибки:
AnsiString = string;
[C++ Error] Unit1.cpp(49): E2034 Cannot convert 'string' to 'AnsiString'

string = AnsiString
[C++ Error] Unit1.cpp(80): E2285 Could not find a match for 'string::operator =(AnsiString)'

2 H010d Freeze Спасибо огромное. [COLOR="Red"].c_str()[/COLOR] работает!
7.8K
12 мая 2007 года
Hrew
185 / / 23.04.2007
Цитата: ApokALEXIS
 
Код:
string S;  // string с маленькой! (они ведь отличаются?)
S = Edit1->text;
Edit2->Text = S;


да, отличаются. Именно тем, что написал H010d Freeze. Только вот касательно приведенного фрагмента кода совершенно непонятно зачем Вы создаете себе дополнительные трудности, используя этот тип.

4.0K
12 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
Юзаю потоковые файлы, и соответственно file<<, file>>
Они String и Ansi не хавают
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог