|
|
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичЯ попробовал ВСЁ, что предложено, Зачем вы это пишите? Вот честно пытался найти на всех трех страницах хоть строчку из твоего кода, воспроизводящего обсуждаемую проблему. Не нашел. Только плач Ярославны и капризы, что все время подсовывают не то. Так какую ты помощь ждешь от окружающих? [spoiler][youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 00:57 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Развели тут оффтопа, модератора на нас нет. Возможно моя ошибка в том, что я продолжил старую тему с новым вопросом, вместо открытия новой, что вводит людей в заблуждение, почему опять обсуждают такой простой и решенный вопрос. Распишу то, что я спрашивал ещё раз более подробно. Мне нужно, что бы в программе менялся разделитель дробной части (запятая - точка) "на лету", то есть без смены его в системе, в графиках и выводе текста на канву. Зачем и почему - писал выше. Для примера пара картинок: Сложность заключается в том, что помимо рисования картинок и графиков программа в других потока в то же самое время делает другие задачи, такие как открытие файлов больших размеров, сохранение файлов, запуск других программ с параметрами (в которых тоже фигурирует разделитель). Что значительно усложняет задачу. Изменить вывод текста сразу везде можно использовав глобальную переменную DecimalSeparator, но это может крайне плохо сказаться на стабильности работы остальных потоков, да и вообще тут и на других форумах крайне негативно воспринимают изменение данной переменной, и я понимаю почему. Далее перечислю что мне предложили: 1. Изменять глобальную переменную (насколько я понял), при этом гарантировать корректную работу потоков за счет: а) использования SringReplase для приведения к единому формату б) использование расширенной StrToFloat для универсального считывания данных при любом разделителе. 2. Предложили несколько вариантов форматирования вывода лейблов непосредственно на Чарте, увы, данные способы не сработали, так как разделитель там всё равно подхватывается из DecimalSeparator, даже если в упомянутых строках поставить точку/запятую. (хотя возможно там есть более хитрые возможности форматирования) 3. Предложили использовать Val() и Str(), конкретно это предложение я не очень понял применительно к Chart-у, так как он лейблы рисует в автоматическом режиме подобными процедурами изменить формат вывода не очень просто, у Чарта есть функционал вывода строк вместо числовых значений, но это сильно усложнит работу с ним. 4. Отдельно я сам предполагал вариант на момент отрисовки графиков тормозить все потоки, менять разделитель, рисовать, опять менять разделитель, возобновлять потоки. Первый способ в обоих вариантах подразумевает во первых изменение в коде DecimalSeparator, что плохо, во вторых обширные изменения в достаточно большом объеме кода. Если ничего не придумаю лучше, воспользуюсь вариантом 1б, по крайней мере он полезен в качестве универсальности считывания/сохранения данных Далее товарищ asutp2 написал asutp2Нда, создается впечатление, что ТС всех тупо тролит. Эта "проблема" решается одной(!) строчкой кода но увы нигде не написал этой строчки. Возможно он прав и я что-то упустил, укажите. Товарищ Vlad F ещё дальше написал серию достаточно оскорбительных сообщений, на которые я и ответил, вероятно - зря, к коду и программе они отношения не имеют. Ещё дальше вы написали ДокПарень, придержи коней. Народ на форуме не виноват в том, что из трех страниц обсуждения ты практически так и не удосужился хоть что-то попробовать или хотя бы почитать о предложенном Как я уже писал выше, я внимательно прочитал всё предложенное и всё попробовал, за исключением Val() и Str(), так как не знаю как их применить к Лейблам чарта. Теперь вы просите привести код, ДокВот честно пытался найти на всех трех страницах хоть строчку из твоего кода, воспроизводящего обсуждаемую проблему. Не нашел. Только плач Ярославны и капризы, что все время подсовывают не то. Так какую ты помощь ждешь от окружающих? Я готов, какой код вам нужен и зачем? Что там должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 02:03 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич Мне нужно, что бы в программе менялся разделитель дробной части (запятая - точка) "на лету", то есть без смены его в системе, в графиках и выводе текста на канву. Очень коряво написал, подразумевается - без смены в системе, без смены в остальных потоках, но со сменой вывода на графики Чарта и TextOut канвы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 02:05 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичЯ готов, какой код вам нужен и зачем? Что там должно быть? обычно прикладывают минимальный код, воспроизводящий проблему или показывающий, что хотелось, но не получилось. Вряд ли за тебя его кто-то будет здесь писать, угадывая исходные условия (жаль, в нашей ветке нет подобного этому сообщения 1991850 ). Картинки же твои - ни о чем, такие же можно нарисовать и в Экселе. Вот если бы ты написал, в каком виде ты получаешь и хранишь данные, по какому условию определяшь вид десятичного разделителя, как из доп. потока отправляешь данные в TChart для отображения, тогда и дальнейший разговор пошел бы гораздо продуктивнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 08:47 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart http://qaru.site/questions/tagged/teechart?page=1 возможно найдете, что искали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 09:46 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Собственно, задачу можно решить разными способами, но большая часть из них - костыли. Корректный способ - это в спеке формата файлов прибить гвоздями разделитель и при общении с файлами применять функции с параметром FormatSettings (к тому же, если вдруг понадобится обмениваться файлами с забугорьем - в программе будет достаточно поменять только один символ); графики же выводить с системным разделителем. Пока на поставленную задачу этого достаточно. Имплантация FormatSettings может быть муторной и геморной, если до этого код писали абы как ("о, а что, в мире используется букв больше, чем 127???" (с) американцы после стандартизации таблицы ASCII), но это надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 10:05 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
08.08.2019 10:05, Василий 2 пишет: > Собственно, задачу можно решить разными способами не взлетит. тут программист нужен. (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 11:20 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий08.08.2019 10:05, Василий 2 пишет: > Собственно, задачу можно решить разными способами не взлетит. тут программист нужен. (С) Do or die trying! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 11:21 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
08.08.2019 11:21, Василий 2 пишет: > Do or die trying! don't try, die right away. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 11:25 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
ДокАндрей ИгоревичЯ готов, какой код вам нужен и зачем? Что там должно быть? обычно прикладывают минимальный код, воспроизводящий проблему или показывающий, что хотелось, но не получилось. Вряд ли за тебя его кто-то будет здесь писать, угадывая исходные условия (жаль, в нашей ветке нет подобного этому сообщения 1991850 ).. Зачем, ну зачееем??? Если вся проблема по сути описывается одной фразой: "Как корректно менять дробный разделитель в коде программы для отдельных задач". Всё остальное это частности, сейчас я фалы открыл одним способом, завтра научился делать это лучшим способом, переделал и всё сломалось, сейчас использую одно, потом - другое. Если я ищу корректный способ, он не должен от этого зависеть. Вот вам код описывающий всю суть проблемы: Код: pascal 1. ДокКартинки же твои - ни о чем, такие же можно нарисовать и в Экселе. Можно, и рисуются, и там кстати есть пункт с такой настройкой. К чему вообще претензия, я просто показал что хочу получить. Мне даже код не нужен в ответ, саму идею, концепцию или хотя бы ссылку. ДокВот если бы ты написал, в каком виде ты получаешь и хранишь данные, по какому условию определяшь вид десятичного разделителя, как из доп. потока отправляешь данные в TChart для отображения, тогда и дальнейший разговор пошел бы гораздо продуктивнее. Абсолютно ненужная для данного обсуждения информация которая с высокой степенью вероятности приведет к обсуждению моего кода, а не изложенного вопроса. Но давайте, мне не сложно: кодКусочек кода отвечающий за считывание одного типа файлов: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Подобных кусков несколько десятков, так как формат хранения данных разный в разных файлах. Вот так передаются в основной поток откуда уже рисуются чартом и другими рисвальщиками в главном потоке или других. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Вот один из самых простых примеров вывода данных в Чарт, без математики и прочего. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Как там вам ещё нужна информация, как храню... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. Формат хранения постоянно дорабатываю и перерабатываю, но коль просите. Ещё есть сохранение файлов и передача параметров, но там обыграть проще. Коль вы увидели код, можете ли вы предложить что-то, что не предлагали ранее, при этом не сводя обсуждение к качеству моего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 13:26 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
GerasimenkoАндрей Игоревич, Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart http://qaru.site/questions/tagged/teechart?page=1 возможно найдете, что искали Спасибо, просмотрю. Хотя первый вопрос там мне понравился :) авторЧто может привести к тому, что круговая диаграмма выйдет "хлюпать"?. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 13:28 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
GerasimenkoАндрей Игоревич, Здесь на 52-х страницах собраны наиболее популярные вопросы по teechart http://qaru.site/questions/tagged/teechart?page=1 возможно найдете, что искали Увы не нашел, но там ещё поиск есть, но пока тоже не нашел нужного, много всего, но увы не того, что икал. Заодно раз уж умные люди в доках к лазарусу пишут сделал такую процедуру. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. И групповой заменой поменял весь StrToFloat в процедурах считывания данных (наверно тогда и везде поменяю), чем по крайней мере гарантировал считывание при изменении глобального параметра. А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 15:10 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичА я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт? И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт. В итоге всё так просто можно решить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 15:31 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
пцнт упрт (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 15:33 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич... А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт? Это было бы прикольно. :) Но вот еще беда: в некоторых странах требуют отделать группы десятичных разрядов пробелом, в иных - точками, или "апострофоми" ( ' ). Еще есть разные виды точек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 15:34 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
ёёёёёАндрей Игоревич... А я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт? Это было бы прикольно. :) Но вот еще беда: в некоторых странах требуют отделать группы десятичных разрядов пробелом, в иных - точками, или "апострофоми" ( ' ). Еще есть разные виды точек. Мы пока с такими странами не работаем. Будем работать - буду думать :). А вообще вы просто не представляете сколько инженеро-часов было потрачено, когда заставили во всей документации менять запятые на точки, сколько было ненависти и боли с глазах и словах людей :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 15:40 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичАндрей ИгоревичА я вот подумал, а нельзя ли пойти на небольшой обман и создать свой шрифт, в котором точку поменять местами с запятой и при выборе галочки просто подключать это шрифт? И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт. В итоге всё так просто можно решить... Правильно, чем больше граблей сразу разложишь, тем разнообразнее секс потом будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 16:06 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийпцнт упрт (С) А вы не верили в могутный потенциал! Да он нам всем ещё покажет.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 16:20 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
08.08.2019 16:20, Vlad F пишет: > > А вы не верили в могутный потенциал! > Да он нам всем ещё покажет.)) не, не! я в домике! (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 16:28 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
alekcvpАндрей Игоревичпропущено... И ДА! Вот оно решение! Работает! Единственно я не умею в делфи создавать и менять шрифты, потому создал в сторонней программе шрифт. В итоге всё так просто можно решить... Правильно, чем больше граблей сразу разложишь, тем разнообразнее секс потом будет Все предложенные выше варианты - это раскидывание грабель по округе, наоборот, как мне кажется, это способ самый безопасный. Только там где выводится текст, если стоит галка и найден шрифт - то применяем измененный шрифт, иначе - стандартный. В чарте то же самое приминительно к лейблам. Если же предложите менее грабельный путь, с радостью использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:00 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей, ты перфокарты застал? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:07 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
МимопроходящийАндрей, ты перфокарты застал? Нет, моё знакомство с компьютером началось с дискет 5.25 и 8цветного здоровенного монитора с маленьким экраном и защитным стеклом, хотя в то время может где-то ещё и использовали перфокарты. Тут за флуд не карают чтоль, хотя судя по вашему объему сообщений - нет, бардакссс :). Эххх, вы бы по делу что предложили, может есть неграбельно-безкостыльный способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:16 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, так сам же уже пришел практически к решению. абстрагировать нужную логику за фасадом своей ф-ии. если же имя менять влом то прям strtofloat и оверрайдить где требуется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:25 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:32 |
|
||
|
FloatToStr и знак разделителя десятичной дроби в разных системах
|
|||
|---|---|---|---|
|
#18+
08.08.2019 17:16, Андрей Игоревич пишет: > Нет, моё знакомство с компьютером началось с дискет 5.25 ты не поверишь, но большинство тех, кто считают что ты профан, в эпоху перфокарт уже таки занимались программированием. и оттого такая оторопь берёт - неужели так низко пал уровень подготовки researcher-ов в нонешних условиях... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2019, 17:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39846794&tid=2038805]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 351ms |

| 0 / 0 |
