реклама на сайте
подробности

 
 
> VS C# + МК, Тип данных ячейки
Ekka
сообщение Sep 22 2017, 08:45
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Привет всем... может, кто знает, что за беда. МК соединяется с ПК через прогу (Visual Studio - C#) по ком-порту.
Есть у меня на форме табличка, куда заносятся данные DataGridView.
Во все ячейки, если заносим числа - они приходят типом String. ВСЕ.
Но в одну единственную 32-ю, если числа от 1 до 9 - типом стринг, если больше 9 - приходит char и начинается галимотья.
От чего так???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Sep 22 2017, 13:29
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Потому что 32 это 2^^5
Так будет и с 64 и с 128 и далее ячейками.
Перейдите не на степень 2, а например на основание 3.
Тогда будет проще и понятнее.
Или попробуйте F# вместо C#.
Go to the top of the page
 
+Quote Post
mantech
сообщение Sep 24 2017, 17:16
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(x893 @ Sep 22 2017, 16:29) *
Или попробуйте F#


Это еще что такое?? Когда закончится придумывание этих языков "программирования", неужели бейсика, паскаля, си и асма недостаточно...
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Sep 24 2017, 19:09
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(mantech @ Sep 24 2017, 18:16) *
неужели бейсика, паскаля, си и асма недостаточно...

ассемблеров тех - сотни тысячи, и всё ещё изобретают и изобретают
вообще, путём сложного эволюционирования прогрммеры наконец-то смогли прийти к тому, что свой язык программирования может написать каждая собака
чем и занимается
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 24 2017, 19:16
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Огурцов @ Sep 24 2017, 22:09) *
.... каждая собака

Раз уж дошли до животного мира.
Как думаете, что будет делать обезьяна, скажем, со смартфоном? Звонить и отправлять смс-ки? Фигушки!
Она будет им долбить по камню, пока не разломает его или бросит в того, кто дал ей этот смартфон.
А объяснение этому очень простое - естественное природное скудоумие, обезьяна в этом не виновата, на пальмах ей смартфон ни к чему, им бананов не достать (обезьяны, ничего личного ))).
И уж подавно не виноват в этом изобретатель смартфона. Он вообще не при делах, что некая обезьяна не знает что с ним делать sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Obam
сообщение Sep 25 2017, 08:27
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(Forger @ Sep 24 2017, 23:16) *
Раз уж дошли до животного мира.
Как думаете, что будет делать обезьяна, скажем, со смартфоном? Звонить и отправлять смс-ки? Фигушки!

Вроде как было сообщение, орангутаны научились селфи делать… а вы говорите "долбить по камню"


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Ekka
сообщение Sep 25 2017, 11:21
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Так и не поняла, ПОЧЕМУ 32 ячейка САМОВОЛЬНО после того, как я ввожу в нее число, большее 9, то есть 10, например, вместо string переводит его в char, берет первую цифру и считает, что это символ номер 49.
При отладке вижу, что во все другие ячейки приходит string "10", а в эту char 49 '1'. Что за штука... почему??? Как это исправить?
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 25 2017, 17:33
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Ekka @ Sep 25 2017, 14:21) *
Так и не поняла, ПОЧЕМУ 32 ячейка САМОВОЛЬНО после того, как я ввожу в нее число, большее 9, то есть 10, например, вместо string переводит его в char, берет первую цифру и считает, что это символ номер 49.
При отладке вижу, что во все другие ячейки приходит string "10", а в эту char 49 '1'. Что за штука... почему??? Как это исправить?


если коротко и поверхносто, то...
изначально, в компьютерном мире оперировали байтом. и предполагали что этого хватит на все случаи жизни. и поставили в соответствие каждому из 256 его значений некое отображение(символ),
когда речь заходила о кодировке для того или иного формата данных(в частности текста, понятного человеку).

напротив значения 49 (шестнадцатиричное 31h) поставили цифру 1. (числа так и стоят в ряд от 30h до 39h что соответствует от '0' до '9').
дальше-больше... Когда речь зашла об кодировании различных других языков (не англоязычных) то по началу на региональном уровне каждый изгалялся как мог.
Русский например частично располагали выше 128 (80h), частично использовали совпадающее написанию знаков.
Потом усиленно ввелось понимание символа который отображается и собственно самой ячейки под это отведённое. В зависимости от маркетинга и кулика - лидируют в основном
болотца = юникод, мультибайт (ну может ышо парочка)....

Дык вот, возвращаясь к баранам...
То чем Вы оперируете со строкой, ничего не знает о мультибайте(или юникоде). Посему честно записывает, когда требуется более старший разряд, в более левую ячейку. При этом размерность ячеек обычно указывает сам программист.


удачи вам
(круглый)
ЗЫ
А вообще, лучше почитать что нить популярное об локализации, знакогенерации, юникод, мультибайт и иже...

Сообщение отредактировал kolobok0 - Sep 25 2017, 17:34
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ekka   VS C# + МК   Sep 22 2017, 08:45
- - richie   Не совсем понятно, какие данные и откуда. Как поня...   Sep 22 2017, 10:47
- - alexunder   Опишите по-подробнее. В DataGridView есть поле Dat...   Sep 22 2017, 10:56
- - Forger   Цитата(x893 @ Sep 22 2017, 16:29) ... Луч...   Sep 22 2017, 17:34
- - Forger   Цитата(mantech @ Sep 24 2017, 20:16) неуж...   Sep 24 2017, 17:34
|- - mantech   Цитата(Forger @ Sep 24 2017, 20:34) Похож...   Sep 24 2017, 18:33
|- - Forger   Цитата(mantech @ Sep 24 2017, 21:33) А эт...   Sep 24 2017, 18:47
- - kolobok0   Цитата(mantech @ Sep 24 2017, 20:16) ...н...   Sep 24 2017, 17:52
- - Огурцов   но если под каждую пальму насыпать достаточное кол...   Sep 24 2017, 20:21
|- - Forger   Цитата(Огурцов @ Sep 24 2017, 23:21) но е...   Sep 24 2017, 20:51
- - mantech   Цитата(Ekka @ Sep 25 2017, 14:21) Так и н...   Sep 25 2017, 12:04
- - Forger   Цитата(Ekka @ Sep 25 2017, 14:21) Так и н...   Sep 25 2017, 12:37
- - Огурцов   Цитата(Ekka @ Sep 25 2017, 11:21) Так и н...   Sep 25 2017, 20:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th September 2025 - 07:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016

IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here