AnsiString <=> String
например:
string S;
S = Edit1->text;
Edit2->Text = s; // в программе постоянно нужно перехлдить между типами.
Не очень удобно пользоваться Convert(Edit2->Text, s); // своя ф-ия
Еще есть функция Memo1->lines->SaveToFile.
Есть ли ченить аналогичное для Edit?
Может из моды и не вышло...:rolleyes:
Не всё что модно работает:confused: . (у меня builder 6)
Что конкретно у Вас не работает?
Вот этот код что ли?
S = Edit1->text;
Edit2->Text = S;
var
s : AnsiString;
tmp : string;
begin
s := tmp;
s := 'test';
tmp := s;
end;
1. Если "String", то см. sysmac.h, там написано
typedef AnsiString String;
Стало быть и проблем с присваиванием по определению нет.
2. Если "std::string", т.е. из STL-строка... тогда присваивание через char* можно делать, типа так:
AnsiString vclS;
vclS = stlS.c_str();
stlS = vclS.c_str();
Вот этот код что ли?
S = Edit1->text;
Edit2->Text = S;
в принципе да.
...
Это паскаль:)
1. Если "String", то см. sysmac.h, там написано
typedef AnsiString String;
Стало быть и проблем с присваиванием по определению нет.
2. Если "std::string", т.е. из STL-строка... тогда присваивание через char* можно делать, типа так:
AnsiString vclS;
vclS = stlS.c_str();
stlS = vclS.c_str();
1 sysmac.h подключить надо?
2 Щас перезагружесь, попробую.
Вот этот код что ли?
Код:
String S;
S = Edit1->text;
Edit2->Text = S;
Типы String и AnsiString в билдере по умолчанию эквивалентны. Т.е. пишете String - подразумеваете AnsiString. И никаких преобразований из одного типа в другой не требуется. Единственное исключение - если Вы указываете размер String, например String S[50];.
Поэтому ответ Ваш ответ "в принципе да" ни о чем не говорит. Если есть ошибка - давайте кусок кода, который ее вызывает, и описание ошибки.
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] работает!
S = Edit1->text;
Edit2->Text = S;
да, отличаются. Именно тем, что написал H010d Freeze. Только вот касательно приведенного фрагмента кода совершенно непонятно зачем Вы создаете себе дополнительные трудности, используя этот тип.
Они String и Ansi не хавают