Страница 26 из 207
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 16:25
				 Губин Игорь
				МУДАКИ, ДОЛБОЁБЫ, КРИВОРУКИЕ КОДИРОВЩИКИ!!!
Наткнулся на свеженькую фичу с 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
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 17:52
				 Rimas
				A -  - C
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 17:53
				 Rimas
				и в чем прикол?
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 17:57
				 Губин Игорь
				Rimas писал(а): 16 Июнь 2020, 17:52A - - C
 
Ошибся!!!
Rimas писал(а): 16 Июнь 2020, 17:53в чем прикол?
 
Clip(B) возвращает не '', а '<0>'
Может дело в каких-то параметрах или передачах, но я угрохал 30 минут, пока допёр
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:11
				 kreator
				Я вроде попробовал, у меня как положено. Как Римас написал, имею ввиду. Версия - 11.0.13401.
Губин Игорь писал(а): 16 Июнь 2020, 17:57
Clip(B) возвращает не '', а '<0>'
 
Ну и что? Чисто внешне - пробел. Куда остальные символы деваются?
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:18
				 Rimas
				Да нет, я не ошибся. Не поленился и протестил. Версия 11.0.13505
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:18
				 Губин Игорь
				kreator писал(а): 16 Июнь 2020, 18:11
Ну и что? Чисто внешне - пробел. Куда остальные символы деваются?
 
В никуда! Не забывай. что мы имеем дело с CString!!!
D = 'A - <0> - C'
Т.е. D = 'A - '
Прости за грубость. Пока допёр мозги поехали...
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:24
				 Губин Игорь
				Rimas писал(а): 16 Июнь 2020, 18:18
Да нет, я не ошибся. Не поленился и протестил. Версия 11.0.13505
 
Аналогично. Но вот у меня, после передачи очереди в dll, обрезает! 
Возможно, что как-то связано с
- передачей значений
- множественым использованием Clear()
Попробуй сделать Clear(B)
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:26
				 Rimas
				Одинаковый результат что с CLIP, что без. Это же CSTRING. Явно проблема где-то в другом месте
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:27
				 Rimas
				Где и что clear-ить?
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:30
				 Rimas
				Код: Выделить всё
A = 'A'
        B = ''
        C = 'C'
        clear(B)
        D = Clip(A) & ' - ' & CLIP(B) & ' - ' & Clip(C)
        E = A & ' - ' & B & ' - ' & C
        Stop(D)
        
Без разницы
 
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 18:32
				 Rimas
				Я подозреваю, что проблемма может быть при передаче параметров. Можешь дать пример, как передаешь?
			 
			
					
				Clarion 11-12
				Добавлено: 16 Июнь 2020, 19:17
				 Губин Игорь
				Выдержка из того куска, который правлю сейчас, после обнаружения проблемы
В програме:
Код: Выделить всё
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))
 
			 
			
					
				Clarion 11-12
				Добавлено: 29 Июнь 2020, 19:58
				 finsoftrz
				Погонял сегодня еще среды C10/C11. Если установить режим Full Screen, то на монике 19 дюймов с разрешением 800х600 вполне нормально и свои окошки вижу, и контролы среды. Сборка горячей клавишей, чтобы в меню не лезть, а тулбар скрыт в этом режиме.
			 
			
					
				Clarion 11-12
				Добавлено: 29 Июнь 2020, 21:30
				 gopstop2007
				Rimas писал(а): 16 Июнь 2020, 18:32
Я подозреваю, что проблемма может быть при передаче параметров. Можешь дать пример, как передаешь?
 
Может еще проблема в окне которое message выводит, криво оно в 10 сделано