C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
CString
MOPO3
Отправлено: 20.08.2004, 09:37


Ученик-кочегар

Группа: Участник
Сообщений: 22



Перевожу прогу с Визуал цпп на билдер 6. На что надо заменить CString ? На AnsiString не проходит.
olegenty
Отправлено: 20.08.2004, 10:28


Ветеран

Группа: Модератор
Сообщений: 2412



для пущей простоты понимания проблемы — опубликуй кусочек кода с указанием, что же не проходит... потому что кроме AnsiString пользоваться реально нечем. Вернее, AnsiString в корягу встроенный, Builder его хорошо понимает, и пользоваться чем-то альтернативным вряд ли есть смысл...
Guest
Отправлено: 20.08.2004, 10:59


Не зарегистрирован







ShortString
AnsiString
WideString

А описывается CString в afx.h расположенный в
C:\Program Files\Borland\CBuilder6\Include\Mfc
CString работает только в MFC

Только непонятно, чем не подходит AnsiString, она удобней и лучше
MOPO3
Отправлено: 20.08.2004, 11:11


Ученик-кочегар

Группа: Участник
Сообщений: 22



Я не знаю как вот это перевести на билдер :
CODE
CString s;
   GetCurrentDirectory(MAX_PATH,s.GetBuffer(MAX_PATH));
   s.ReleaseBuffer();
   if (s.Right(1) != "\\")
        s += "\\";
   s += "filename.dat";


Отредактировано MOPO3 — 20/08/2004, 11:13
Konstantine
Отправлено: 20.08.2004, 11:22


Мастер участка

Группа: Модератор
Сообщений: 545



в текущей директории можно и без пути :-)

а что именно не можешь перевести? GetCurrentDirectory — вроде такая есть ( может правда GetCurDir или GetCurrentDir — посмотри в хелпе)

вместо Right — s.SubString(1,1)

а если += не работает, то s=s+"\\" и т.д.

а что такое ReleaseBuffer?
MOPO3
Отправлено: 20.08.2004, 11:27


Ученик-кочегар

Группа: Участник
Сообщений: 22



ReleaseBuffer : http://msdn.microsoft.com/library/default....leasebuffer.asp
Konstantine
Отправлено: 20.08.2004, 13:08


Мастер участка

Группа: Модератор
Сообщений: 545



Я то конечно не доконца понял для чего он, но думаю, что без него здесь вполне можно
olegenty
Отправлено: 20.08.2004, 13:17


Ветеран

Группа: Модератор
Сообщений: 2412



то, что тебе надо, выглядит так:
CODE

   AnsiString s = ExtractFilePath(Application->ExeName) + "filename.dat";

для каталога, где лежит exe.
или, в общем случае, для некоего текущего каталога:
CODE

   AnsiString s = GetCurrentDir() + "\\filename.dat";


Вернуться в Вопросы программирования в C++Builder