Clarion 11-12

Clarion, Clarion 7

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

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

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
Ветеран
Сообщения: 493
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

A - - C

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

Clarion 11-12

Сообщение Rimas »

и в чем прикол?

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

Clarion 11-12

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

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

Может дело в каких-то параметрах или передачах, но я угрохал 30 минут, пока допёр
Это я только кажусь дураком! На самом деле я полный идиот!

kreator
✯ Ветеран ✯
Сообщения: 3846
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Clarion 11-12

Сообщение kreator »

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

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

Clarion 11-12

Сообщение Rimas »

Да нет, я не ошибся. Не поленился и протестил. Версия 11.0.13505

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

Clarion 11-12

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

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

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

Прости за грубость. Пока допёр мозги поехали...
Последний раз редактировалось Губин Игорь 16 Июнь 2020, 18:25, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!

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

Clarion 11-12

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

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

Попробуй сделать Clear(B)
Это я только кажусь дураком! На самом деле я полный идиот!

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

Clarion 11-12

Сообщение Rimas »

Одинаковый результат что с CLIP, что без. Это же CSTRING. Явно проблема где-то в другом месте

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

Clarion 11-12

Сообщение Rimas »

Где и что clear-ить?

Rimas
Ветеран
Сообщения: 493
Зарегистрирован: 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
Ветеран
Сообщения: 493
Зарегистрирован: 07 Ноябрь 2005, 15:48
Откуда: Литва

Clarion 11-12

Сообщение Rimas »

Я подозреваю, что проблемма может быть при передаче параметров. Можешь дать пример, как передаешь?

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

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
✯ Ветеран ✯
Сообщения: 1929
Зарегистрирован: 06 Ноябрь 2014, 12:48

Clarion 11-12

Сообщение finsoftrz »

Погонял сегодня еще среды C10/C11. Если установить режим Full Screen, то на монике 19 дюймов с разрешением 800х600 вполне нормально и свои окошки вижу, и контролы среды. Сборка горячей клавишей, чтобы в меню не лезть, а тулбар скрыт в этом режиме.
C6/C11, ШВС, tps/btrieve.

gopstop2007
✯ Ветеран ✯
Сообщения: 1420
Зарегистрирован: 25 Март 2009, 21:55

Clarion 11-12

Сообщение gopstop2007 »

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

Ответить