Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2011, 12:09   #1
DaysOfGrace
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 12
По умолчанию Указатели, присвоение wcstok()

Код:
wchar_t **p3;
**p3 = *wcstok( ADODataSet1FIO->Value, L" ");
   **p3 = *wcstok( NULL, L" ");

   ADODataSet1Name->Value = *p3;
В хэдере Борланда функция описана как

Код:
wchar_t *  wcstok(wchar_t *__s1, const wchar_t *__s2);
Просто присваивать

Код:
*p3 = *wcstok( ADODataSet1FIO->Value, L" ");
не получается - выдаёт ошибку cannot convert wchar_t to wchar_t*

Поэтому присваиваю двойному указателю.

Когда запускаю программу, она сразу рушится на строке

Код:
**p3 = *wcstok( ADODataSet1FIO->Value, L" ");
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00402949 in module 'Project1.exe'. Read of address 00000004'. Process stopped.

( Когда подвожу мышь на ADODataSet1FIO->Value выдаётся нотификация "ADODataSet1FIO->Value = E2208 Cannot access in inactive scope")

Задумывалось - строку в ADODataSet1FIO->Value типа "Иванов Иван Иванович" wcstok() установить указатель на "Иван Иванович", затем строкой
Код:
**p3 = *wcstok( NULL, L" ");
Присвоить токен "Иван" **p3 указателю, который, в свою очередь, присвоится ADODataSet1Name->Value

Последний раз редактировалось DaysOfGrace; 04.03.2011 в 12:13.
DaysOfGrace вне форума Ответить с цитированием
Старый 04.03.2011, 16:22   #2
Д_М
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 92
По умолчанию

Зачем столько звездочек? )

Надо
Код:
wchar_t *p3;
p3 = wcstok( ADODataSet1FIO->Value, L" ");
Кстати, wcstok изменит строку ADODataSet1FIO->Value, если она вам дорога надо ее сначала откопировать.
Д_М вне форума Ответить с цитированием
Старый 04.03.2011, 17:44   #3
DaysOfGrace
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Д_М Посмотреть сообщение
Зачем столько звездочек? )

Надо
Код:
wchar_t *p3;
p3 = wcstok( ADODataSet1FIO->Value, L" ");
Кстати, wcstok изменит строку ADODataSet1FIO->Value, если она вам дорога надо ее сначала откопировать.
Спасибо! Но я уж сам разобрался( ну по крайней мере до следующей функциональности в требовании к БД )
Код:
wchar_t * p3;
p3 = wcstok( ADODataSet1FIO->Value, L" ");
ADODataSet1Name->Value = p3;
Рабочий вариант.

На сколько я понимаю, wcstok - разбивает строку на части. Разбивать должна, но может быть, из за того, что я имею дело с БД, этого не происходит ( всмысле в колонке FIO отображается как и было прописано в Access'e - правильное FIO. К этой базе я подключаюсь через Borland). Код всего три строчки. И когда я активирую базу, нажимаю кнопку поиска ( а это происходит в ADODataSet - onCalcFields ), получаю (см рисунок)
http://clip2net.com/clip/m70597/1299...-clip-37kb.jpg

Функционала мало в базе данных - только коннект, и в единственном пока датасете 1 функция onCalcFields ( но в ней реализация для 2х колонок - для вычисления возраста, и имени ). поэтому, проблем пока нету. В дальнейшей доработке может и откликнется, но сейчас - всё ок.

Последний раз редактировалось DaysOfGrace; 04.03.2011 в 17:51.
DaysOfGrace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоение переменной gajubas PHP 1 21.04.2010 20:18
присвоение значения Stjernen Microsoft Office Excel 5 04.01.2010 14:44
присвоение номера С++ Annabel Помощь студентам 13 15.11.2009 23:44
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Присвоение ID artemavd БД в Delphi 2 20.04.2009 14:45