powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Избавится от лишнего указателя - такое вообще можно...???
17 сообщений из 17, страница 1 из 1
Избавится от лишнего указателя - такое вообще можно...???
    #32362054
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такая вот вешь...)))
Создаю массив:
char *res[120];
dt1 = Query3->FieldByName("Дата1")->AsString;
dt2 = Query3->FieldByName("Дата2")->AsString;
//Дальше я считаю сколько дней между датами и присваиваю это число
//переменной int days.
//потом делю его, допустим на 6... и присваиваю новой переменной int d))) -
//ну хочется мне так
//дальше в зависимости от числа d пишу цикл и загоняю в массив res точки...))
for(j = 0; j < 120; j++)
{ res[j] = "."}
//теперь res нужно перевести в AnsiStrung
AnsiString strtemp;
strtemp=(AnsiString)res;

вот тут та он и ругается что
[C++ Error] Find.cpp(205): E2285 Could not find a match for 'AnsiString::AnsiString(char * *)'
и
[C++ Error] Find.cpp(205): E2031 Cannot cast from 'char * *' to 'AnsiString'

//ну и соответственно передать в 1 ячейку Excel'я
Variant cur = Sh.OlePropertyGet("Cells", 1, 1);
cur.OlePropertySet("Value", strtemp);

Помогите мне пожалуйста...или скажите как иначе запихнуть в эксель массив
символов...)))
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362074
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Живи проще :)

юзай не char * res[100] а , AnsiString res ;

и так же с ним работать :)
for(j = 0; j < 120; j++)
{ res[j] = "."}





____
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362094
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А теперь он ругается на строку
{ res[j] = "."}
и говорит:
[C++ Error] Find.cpp(190): E2034 Cannot convert 'char *' to 'char'
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362095
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
res[j] = '.' в одинарных ковычках должно быть :)
____
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362155
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А теперь он в Excel заносит слово "ИСТИНА"...???
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362178
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял в Excel в ячейку 1,1 нужно 120 точек.
Тогда:

char res[120];
for(j = 0; j < 120; j++)
{ res[j] = '.'}
Variant cur = Sh.OlePropertyGet("Cells", 1, 1);
cur.OlePropertySet("Value", strtemp);
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362184
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык ты смотри что там у тобя получается
в res
____
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362196
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виноват поторопился и про завершаюший 0 забыл:
char res[121];
for(j = 0; j < 120; j++)
{ res[j] = '.'}
res[120] = 0;
Variant cur = Sh.OlePropertyGet("Cells", 1, 1);
cur.OlePropertySet("Value", strtemp);
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362201
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз поторопился, надо так:

char res[121];
for(j = 0; j < 120; j++)
{ res[j] = '.'}
res[120] = 0;
Variant cur = Sh.OlePropertyGet("Cells", 1, 1);
cur.OlePropertySet("Value", res);
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362226
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не знаю почему но он все равно выводит слово ИСТИНА
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362228
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты поставь тип поля текстовой может это поможет ?
____
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362256
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поставил поле текстовое в Excel'е
Потом испоробовал если поставить Text за место Value ничего не помогает
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362268
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dt1 = Edit1->Text;
dt2 = Query3->FieldByName("Дата1")->AsString;
dt3 = Query3->FieldByName("Дата2")->AsString;
dt4 = Query3->FieldByName("Дата3")->AsString;
dt5 = Query3->FieldByName("Дата4")->AsString;
dt6 = Query3->FieldByName("Дата5")->AsString;
Word b1Year, b1Month, b1Day, b2Year, b2Month, b2Day, b3Year, b3Month, b3Day, b4Year, b4Month, b4Day, b5Year, b5Month, b5Day, b6Year, b6Month, b6Day;
DecodeDate (dt1, b1Year, b1Month, b1Day);
DecodeDate (dt2, b2Year, b2Month, b2Day);
DecodeDate (dt3, b3Year, b3Month, b3Day);
DecodeDate (dt4, b4Year, b4Month, b4Day);
DecodeDate (dt5, b5Year, b5Month, b5Day);
DecodeDate (dt6, b6Year, b6Month, b6Day);
days1 = (b2Day-b1Day) + (b2Month-b1Month)*DAY_AT_MONTH + (b2Year-b1Year)*DAY_AT_YEAR;
days2 = (b3Day-b2Day) + (b3Month-b2Month)*DAY_AT_MONTH + (b3Year-b2Year)*DAY_AT_YEAR;
days3 = (b4Day-b3Day) + (b4Month-b3Month)*DAY_AT_MONTH + (b4Year-b3Year)*DAY_AT_YEAR;
days4 = (b5Day-b4Day) + (b5Month-b4Month)*DAY_AT_MONTH + (b5Year-b4Year)*DAY_AT_YEAR;
days5 = (b6Day-b5Day) + (b6Month-b5Month)*DAY_AT_MONTH + (b6Year-b5Year)*DAY_AT_YEAR;
d1 = days1 / 6;
d2 = days2 / 6;
d3 = days3 / 6;
d4 = days4 / 6;
d5 = days5 / 6;
for (j = 0; j < d1; j++)
{ res[j] = ' '; }
for (j = d1; j < d2; j++)
{ res[j] = '.'; }
res[d2] = ' ';
for (j = d2 + 1; j < d3; j++)
{ res[j] = '_'; }
res[d3] = ' ';
for(j = d3 + 1; j < d4; j++)
{ res[j] = '-'; }
for(j = d4; j < d5; j++)
{ res[j] = '*'; }
res[d5] = '|';
res[d5 + 1] = '>';
for(j = d5 + 2; j < 120; j++)
{ res[j] = ' '; }
res[d1] = 0;
Variant cur = Sh.OlePropertyGet("Cells", Row,51);
cur.OlePropertySet("Value", res);
Дни он считает правильно но потом когда начинает заполнять массив с ним чего случается
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362276
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно а что это все у тебя значит точки звездочки итд ?
____
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362285
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну скажем так:
первая строка в экселе это месяцы за два года:
следующая строка соеденина в одну и содержит 120 символов
в зависимости от дат в запросе нужно ставить -,.,_,*
и должно получиться что такое
..............______________--------------***********|>
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362294
'FaTsO'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И все это дело работает под SQL
...
Рейтинг: 0 / 0
Избавится от лишнего указателя - такое вообще можно...???
    #32362313
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Не забудь char res[ 121 ]. Лучше больше чем 121.
2. res[d1] = 0; замени на res[120] = 0;
3. Проверь в отладчике d1,d2,d3,d4,d5<120, вроде d5+2<120
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Избавится от лишнего указателя - такое вообще можно...???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]