![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Gleb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 11.6.2005 Репутация: нет Всего: 1 |
Уважаемые, облазил почти все - нигде не нашел, как AnsiString сохранять и читать из бинарного файла с помощью ifstream и ofstream. Возможно ли такое в принципе?
Пробовал приводить к массиву символов, но появляется мусор на месте последнего символа в читаемой строке, да и сохраняется не в бинарном виде. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Gleb
Этот вопрос нужно в раздел по C++ Builder писать. Но насколько я помню такой возможности там нет.
А в каком ещё виде оно может сохраняться? -------------------- Да. Именно так. |
|||
|
||||
| Gleb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 11.6.2005 Репутация: нет Всего: 1 |
тогда хоть подскажите какой-нибудь метод не низкоуровневый попроще. Буду очень признателен.
Дрон, если приводить к массиву символов, то сохраняется в обычном текстовом виде, по крайней мере так происходит у меня |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
А что такое AnsiString? Это не массив байтов по сути? Для анси-символов что "обычный текстовый" вид, что бинарный - разве что символ конца строки будет другой... А вы, случайно, не в текстовом режиме ifdtream и ofstream открываете?
-------------------- ... |
|||
|
||||
| Gleb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 11.6.2005 Репутация: нет Всего: 1 |
нет, открываю с ios::binary
|
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: 2 Всего: 17 |
метод c_str() формирует из AnsiString массив типа char
те copy(buf, Str.c_str() ); получил из AnsiString Str -> char buf[] единственное что надо подумать о размере буфера - например buf = new(Str.Length) -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
vadims
А strcpy уже отменили? -------------------- Да. Именно так. |
|||
|
||||
| ДмитрийПП |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 11.7.2005 Репутация: 1 Всего: 1 |
Где Caption - AnsiString заголовок окна. Просто используй функцию c_str(). Прочитать тоже не очень сложно. |
|||
|
||||
| Gleb |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 11.6.2005 Репутация: нет Всего: 1 |
В итоге 11 байт и строчка "Hello World" |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: 2 Всего: 17 |
Дрон
Ну перегрелся я Gleb Если тебе надо просто записать- можно еще проще, без буферов и копирований AnsiString str = "Hello World"; ofstream file("data.db",ios::binary); file.write(str.c_str(),sizeof(char)*str.Length()); file.close(); -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
А чем не устроили операторы AnsiString << и >> ?
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |