Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для davian
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122

Исчезает значение String

22.09.2010, 09:41. Показов 984. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть выражение:

C++
1
2
String DatFileName = FPath + FFName + ".dat";
fIn=fopen(DatFileName.t_str(), "rb");
FPath и FFName значения типа String. До выполнения второй строчки в представленном фрагменте, значения такие как надо. После выполнения этой строчки значение DatFileName такое
{ "㩄獜牫獺景屴浩条獥ぜ〰弸⸲慤Lg杤ę杤ę⧄" }
Примерно... Короче чушь появляется... Кто знает по какой причиной это происходит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2010, 09:41
Ответы с готовыми решениями:

Почему исчезает значение в текстовом поле
Доброго дня! Столкнулся с такой неприятностью. Если программно заполняю текстовые поля из базы данных а потом хочу что то...

Исчезает значение переменной
Dobryj den'! Kto-nibud' kogda-nibud' stalkivalsja s takoj problemoj: Est' kod: Feature currentFeature = new Feature(); ...

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()?
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return NULL; } char** f_1 () { ...

8
 Аватар для voalex
32 / 32 / 8
Регистрация: 21.10.2009
Сообщений: 97
22.09.2010, 10:01
Цитата Сообщение от davian Посмотреть сообщение
DatFileName.t_str()
C++
1
]DatFileName.c_str()
Попробуйте так.
0
 Аватар для davian
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
22.09.2010, 10:06  [ТС]
Цитата Сообщение от voalex Посмотреть сообщение
C++
1
]DatFileName.c_str()
Попробуйте так.
Ошибки:

[BCC32 Error] nnn.cpp(89): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] nnn.cpp(89): E2342 Type mismatch in parameter '__path' (wanted 'const char *', got 'wchar_t *')
0
 Аватар для voalex
32 / 32 / 8
Регистрация: 21.10.2009
Сообщений: 97
22.09.2010, 10:12
Попробуйте AnsiString, а потом char. Я когда-то что подобное делал, тоже с типами намудрил))
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
22.09.2010, 10:22
davian, всё правильно, так и должно быть.
Используя метод t_str() вы делаете запрос на возврат копии значения типа (char *).
Нигде не оговаривается, что участок памяти будет неизменным на всём промежутке выполнения программы.
Если вам нужно сохранить постоянное значение, то нужно создать символьный массив:
C++
1
2
3
4
5
6
String Text = "Hello World";
char *Temp = new char [Text.Length()+1];
strcpy(Temp,Text.t_str());
// действия
delete []Temp;
Temp = NULL;
Только объясните, зачем вам это?
Чем не устраивает вызов метода t_str() в случае необходимости?
0
 Аватар для davian
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
22.09.2010, 10:48  [ТС]
Цитата Сообщение от MikeSoft Посмотреть сообщение

Только объясните, зачем вам это?
Чем не устраивает вызов метода t_str() в случае необходимости?
Я не совсем понял вопрос. Вроде бы я так и делаю... Т.е. вызываю метод t_str(). Но мне необходимо, чтобы после вызова этого метода, у меня исходное значение, которое хранится в переменной типа String, оставалось неизменным, поскольку я с этим значением именно в таком виде далее работаю...
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
22.09.2010, 11:19
davian, в переменной должно остаться необходимое значение.
Проверьте:
C++
1
2
3
String DatFileName = "C:\\boot.ini";
FILE *fIn=fopen(DatFileName.t_str(), "rb");
ShowMessage(DatFileName);
0
 Аватар для davian
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
22.09.2010, 11:45  [ТС]
Цитата Сообщение от MikeSoft Посмотреть сообщение
davian, в переменной должно остаться необходимое значение.
Проверьте:
C++
1
2
3
String DatFileName = "C:\\boot.ini";
FILE *fIn=fopen(DatFileName.t_str(), "rb");
ShowMessage(DatFileName);
ShowMessage выдает такое сообщение:

C:\boot.in(
Т.е. тоже теряется 1 символ...

В принципе я заменил тип String на AnsiString и все заработало... Просто мне непонятен этот глюк...
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
22.09.2010, 15:11
Цитата Сообщение от davian Посмотреть сообщение
Т.е. тоже теряется 1 символ...
Потерь быть не должно!

У меня было такое один раз на 2009-ом билдере.
Пришлось переставить его и поставить заплатки, которые были доступны на тот момент!
После обновления всё работало нормально.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.09.2010, 15:11
Помогаю со студенческими работами здесь

функция choose(n:byte; c1: string): string возвращает значение из списка
функция choose(n:byte; c1: string): string возвращает значение из списка, выбранное на основании значения аргумена N. если N=1 то...

Как из unordered_map<string, string> получить значение по ключу
У меня есть такая штука. Как мне из нее получить значение по ключу? Я вот хочу написать string str = parents и получить...

Из XML считывать ключ/значение в List<string, string>
Привет, друзья. Помогите разобраться. Ничего полезного в интернете не нашел.. Нужно из XML попарно вывести ключ/значение в List. Фрагмент...

Получить значение value (string) из Dictionary<int, string>
Имеем Dictionary&lt;int, string&gt; pos = new Dictionary&lt;int, string&gt;; pos.Add(1,&quot;A&quot;); pos.Add(2,&quot;B&quot;); Dictionary&lt;int, int&gt; bet =...

На роутере исчезает интернет, после перезагрузки появляется и несколько минут работает, потом снова исчезает
в чем причина и как решить эту проблему? Может ли быть проблема со стороны интернет-провайдера или проблема в роутере?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru