Clarion 11-12

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

МУДАКИ, ДОЛБОЁБЫ, КРИВОРУКИЕ КОДИРОВЩИКИ!!!

Наткнулся на свеженькую фичу с CString

Код: Выделить всё

A CStrng(1024)
B CString(1024)
C CString(1024)
D CString(1024)

CODE
   A = 'A'
   B = ''
   C = 'C'
   D = Clip(A) & ' - ' & Clip(B) & ' - ' & Clip(C)
   Stop(D)
Угадайте с одного раза, что вы увидите в STOP
Это я только кажусь дураком! На самом деле я полный идиот!
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

A - - C
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

и в чем прикол?
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Rimas писал(а): 16 Июнь 2020, 17:52A - - C
Ошибся!!!
Rimas писал(а): 16 Июнь 2020, 17:53в чем прикол?
Clip(B) возвращает не '', а '<0>'

Может дело в каких-то параметрах или передачах, но я угрохал 30 минут, пока допёр
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

Я вроде попробовал, у меня как положено. Как Римас написал, имею ввиду. Версия - 11.0.13401.
Губин Игорь писал(а): 16 Июнь 2020, 17:57 Clip(B) возвращает не '', а '<0>'
Ну и что? Чисто внешне - пробел. Куда остальные символы деваются?
We are hard at work… for you. :)
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Да нет, я не ошибся. Не поленился и протестил. Версия 11.0.13505
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

kreator писал(а): 16 Июнь 2020, 18:11 Ну и что? Чисто внешне - пробел. Куда остальные символы деваются?
В никуда! Не забывай. что мы имеем дело с CString!!!

D = 'A - <0> - C'
Т.е. D = 'A - '

Прости за грубость. Пока допёр мозги поехали...
Последний раз редактировалось Губин Игорь 16 Июнь 2020, 18:25, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Rimas писал(а): 16 Июнь 2020, 18:18 Да нет, я не ошибся. Не поленился и протестил. Версия 11.0.13505
Аналогично. Но вот у меня, после передачи очереди в dll, обрезает!
Возможно, что как-то связано с
- передачей значений
- множественым использованием Clear()

Попробуй сделать Clear(B)
Это я только кажусь дураком! На самом деле я полный идиот!
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Одинаковый результат что с CLIP, что без. Это же CSTRING. Явно проблема где-то в другом месте
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Где и что clear-ить?
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Код: Выделить всё

A = 'A'
        B = ''
        C = 'C'
        clear(B)
        D = Clip(A) & ' - ' & CLIP(B) & ' - ' & Clip(C)
        E = A & ' - ' & B & ' - ' & C
        Stop(D)
        
Без разницы
Rimas
Ветеран
Сообщения: 496
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Я подозреваю, что проблемма может быть при передаче параметров. Можешь дать пример, как передаешь?
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Выдержка из того куска, который правлю сейчас, после обнаружения проблемы

В програме:

Код: Выделить всё

ExportListFile          Queue,PRE(ELSF),External,DLL(dll_mode),THREAD
GradeName                   STRING(100)
MarkaStandartName           STRING(100)
StandardName                String(100)		
Country                     String(100) 
MarkaGroup                  String(100)
MarkaNumber                 Long
OsnovaNumber                Long
AnalizGroup                 Group,Dim(200),Pre()
ValueMin                        Real  
ValueMax                        Real 
ActPrz                          Byte  
                            END
		End

В EXP

Код: Выделить всё

  TYPE$ExportListFile @?
  TCB$ExportListFile @?  
  $ExportListFile @?  
В DLL

Код: Выделить всё

ExportListFile          Queue,PRE(ELSF),THREAD
GradeName                   STRING(100)
MarkaStandartName           STRING(100)
StandardName                String(100)
Country			String(100)
MarkaGroup                  String(100) 
MarkaNumber                 Long
OsnovaNumber                Long
AnalizGroup                 Group,Dim(200),Pre()
ValueMin                        Real  
ValueMax                        Real 
ActPrz                          Byte  
                            END
                        END
EOUFLine    CString(65100)                        
Код в DLL где правлю аналогичную проблему сейчас

Код: Выделить всё

! Обрезает
EOUFLine = Clip(Left(Clip(ExportListFile.GradeName) & ' ' & Clip(ExportListFile.StandardName))) & ';' & Clip(Left(ExportListFile.MarkaGroup)) & ';' & Clip(Left(ExportListFile.Country))

Код: Выделить всё

! Не обрезает
			EOUFLine = Clip(Left(Clip(ExportListFile.GradeName) & ' ' & Clip(ExportListFile.StandardName)))
			EOUFLine = EOUFLine & ';' & Clip(Left(ExportListFile.MarkaGroup))
			EOUFLine = EOUFLine & ';' & Clip(Left(ExportListFile.Country))
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Погонял сегодня еще среды C10/C11. Если установить режим Full Screen, то на монике 19 дюймов с разрешением 800х600 вполне нормально и свои окошки вижу, и контролы среды. Сборка горячей клавишей, чтобы в меню не лезть, а тулбар скрыт в этом режиме.
C6/C11, ШВС, tps/btrieve.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Clarion 11-12

Сообщение gopstop2007 »

Rimas писал(а): 16 Июнь 2020, 18:32 Я подозреваю, что проблемма может быть при передаче параметров. Можешь дать пример, как передаешь?
Может еще проблема в окне которое message выводит, криво оно в 10 сделано
Вложения
mess.jpg
mess.jpg (9.7 КБ) 2611 просмотров
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить