Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Проблема с конвертацией строк на С++

Ответить
Настройки темы
Проблема с конвертацией строк на С++

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем!

Есть такой блок:

char* ts = new char[100];
memset(ts, 0, sizeof(ts));
StrPCopy(ts, edMyText->Text);
// здесь ts имеет правильное значение "T-XP1"
LPWSTR ss = (LPWSTR)ts;
// здесь ss имеет значение "\x2D54\x50581"

Обьясните, плиз, в чем дело?
Почему ss не равно "T-XP1"?

Отправлено: 15:25, 15-02-2005

 

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо.
Кстати, hasherfrog, подскажите: использование функции memset является хорошим способом инициализации пустых строк при создании и повторном использовании? Или принято это делать как-то иначе?

Отправлено: 17:19, 20-02-2005 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Черт возьми, не думал, что придется вернуться к этой теме.

Есть:

//структура:
struct PS {
...
String str;
...
};

//переменная ее типа
PS cs;

//и текст
char* ArcFile = new char[200];
memset(ArcFile, 0, sizeof(char)*200);
StrPCopy(ArcFile, cs.str);

хоть убейте, но не пойму, почему ArcFile остается пустым ((
подставляю любую другую переменную типа AnsiString - на ура идет.
менял еще всяко этот код - ничего не понимаю.

ногами не бейте, а лучше подскажите, плиз.

Отправлено: 00:04, 25-02-2005 | #12


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


>> подставляю любую другую переменную типа AnsiString
Куда? куда подставляете? Что "всё" при этом идёт?
Kelasant, вы не торопитесь, давайте не спеша, поподробнее.
Вы перечитайте свой пост - сами смогли бы понять вопрос?

ПС. И кстати, вы как-то странно всё-таки работаете со строками... Мммм, "небезопасно", я бы так сказал. Откуда Вы, например, знаете, что длина cs.str меньше 200 байт? Ну это мелочи, конечно, но как-то не есть хорошо.

Отправлено: 01:44, 25-02-2005 | #13


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вероятно, эмоции помешали более внятно изложить вопрос.

Значит так: есть такая структура (описанная в Types.h) и переменная ее типа (в Variables.h).


Например, в Settings.cpp
#include "Settings.h"
#include "Variables.h"

использование
edPath->Text = cs.str;
и
cs.str = edPath->Text;
работает отлично.


В определенный момент времени я хочу прочитать значение из поля структуры и преобразовать в null-terminated строку.
Это будет делаться в IForm.cpp:

#include "IForm.h"
#include "Variables.h"

...

char* ArcFile = new char[200];
memset(ArcFile, 0, sizeof(char)*200);
StrPCopy(ArcFile, cs.str);

В cs.str лежит красивая правильная строчка - видно дебагером (это все на Builder C++).
После StrPCopy переменная ArcCopy по прежнему указывает на область, заполенную нулями.

Но случайно пробовал сделать промежуточное присвоение - даже не присваивается!
Вариант 1: String tmp = cs.str;
Вариант 2: edMyTEdit->Text = cs.str;
- один фиг, все пустое. В одной форме присваивается, в другой нет
Ощущаю себя полным профаном

Может, есть какие-то особенности обращения со структурами?

З.Ы. замечание принимаю.
Конечно же, надо проверять длину строки, как и многое другое.

Отправлено: 16:19, 25-02-2005 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Проблема с конвертацией строк на С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Группировка строк в экселе pva Программирование и базы данных 6 16-04-2009 12:41
Разное - количество строк WinXP Abracadabra Хочу все знать 7 11-02-2008 23:05
Сравнение строк в PHP Dutchman Mihel Вебмастеру 8 06-07-2004 13:04
Проблема с конвертацией закладок Opera 7.0 в IE 6.0 AlexCom Хочу все знать 1 27-06-2004 21:31
Проблема с конвертацией музыкальных CD в формат mp3 Meister Непонятные проблемы с Железом 11 18-08-2002 02:59




 
Переход