|
Упрощение кода
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите пожалуйста как максимально можно упростить этот код( Думал циклом, но вряд ли получится. По крайней мере не вижу как. Код: vbnet 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.
PS Открываем затвор - будующие процедуры, которые в дальнейшем будут двигать графически нужный затвор на нужную ступень ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:43 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Чем они отличаются? Константами? Загнать константы в массив или БД и использовать одну процедуру ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Смысл в том, что таких процедур - Gate..Point.. будет 72, поэтому могу себе представить до каких размеров вырастит код Заранее спасибо!!!!!!!!!!!!!!!!!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Я тебя уже учил НЕ ПОВТОРЯЙ КОД делай это сразу, еще до его написания ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:46 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProЯ тебя уже учил НЕ ПОВТОРЯЙ КОД Поэтому и задал такой вопрос, потому что не хочу повторять код. Во-первых это неправильно, во-вторых море время займет. Если бы знал как сделать не отписывал бы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:48 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Если по коду не понятно, то мне нужно в СТРОГОЙ последовательности пройтись по процедурам(всего 72). И наткнувшись в очередной процедуре на удовлетворяющее условие, выполнить движение объектов( тех затворов-процедур, которые были пройдены) Не знаю понятно или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:54 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Т.е. если прошли Gate7_Point1, Gate5_Point1,Gate3_Point1 и на Gate4_Point1 условие выполнилось, то нужно выполнить Move7_1, Move5_1, Move3_1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:58 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameron, не увидела начальных значений --RememberVSB --Con1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 15:58 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАне увидела начальных значений Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 16:08 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronТ.е. если прошли Gate7_Point1, Gate5_Point1,Gate3_Point1 и на Gate4_Point1 условие выполнилось, то нужно выполнить Move7_1, Move5_1, Move3_1Все эти циферки в названиях твоих процедур должны исчезнуть. Должен где-то определен массив данных, который определяет и константы и последовательность действий и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 16:21 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameron, все ваши функции --с параметрами, значит они не головные трудно угадывать, что должна делать программа, не понимая ее сути по слову (затвор) мои предположения --ленинградская дамба --подъем воды при наводнении --в зависимости от уровня угрозы --закрываются некоторые ворота, причем по какой то схеме, а не просто 1,,2,,3,,72 --если на каких-то воротах профилактика, возможно изменение схемы запирания ничто другое в голову не пришло с фразой 72 затвора ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2015, 19:37 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProДолжен где-то определен массив данных, который определяет и константы и последовательность действий и т.п Массив каких данных? Можно хоть простейший пример того, что нужно сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 11:25 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronShocker.ProДолжен где-то определен массив данных, который определяет и константы и последовательность действий и т.п Массив каких данных? Можно хоть простейший пример того, что нужно сделатьОткуда я знаю, я же не буду за тебя писать всю программу Должно быть что-то типа того Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Как хранятся данные для функций A1-A4 и как осуществляется к ним доступ - это надо решить. Но факт, что они не должны храниться в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 11:32 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProОткуда я знаю, я же не буду за тебя писать всю программу Не прошу этого. Мне это и не нужно. Хочу САМ, но как можно правильнее. Буду тогда чесать правой рукой левое ухо. Код: vbnet 1.
- Это одна из 72 функций( все разные) типа y=-0.1578 * x ^ 2 + 13.443 * x - 179.19 Если помощь в этом займет сильно много времени так и скажите, буду чесать ухо. Если готовы помочь, скажите что я непонятно объяснил, объясню более развернуто. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:27 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Ты уверен, что функции разные? В приведенных примерах разные только константы, функции одинаковые ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:35 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Вероятно, у тебя есть таблица из 72 строк: код затвора константа1 константа2 константа3 код подчиненного затвора7.1-0.157813.443179.195.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:39 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
а ничего, что у ТС single тип данных? ему же скорее всего надо decimal, а в VB c этим сложнее ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:43 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Konst_Oneа ничего, что у ТС single тип данных? ему же скорее всего надо decimal, а в VB c этим сложнееНе думаю, что в данном случае недопустимы расчеты с плавающей запятой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:48 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
ну автору виднее, я просто предупредил, что точность надо учитывать. это если он сравнивает свои результаты с эталонной таблицей ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:52 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Кстати, А зачем каждый подчиненный затвор открывает своих родителей? Разве не проще сделать так (показываю на изначальном примере, без оптимизации) Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:52 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameron, кстати, про форматирование кода вроде ты говорил, что ты понял, а опять насажал лишних отступов ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:53 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProТы уверен, что функции разные? В приведенных примерах разные только константы, функции одинаковые Ну я имел в виду функции разные от того, что константы разные. Если посмотреть с той точки зрения что вы сказали, то да - функции все одинаковые, а константы в них разные. Скорее такая таблица. Код затвора константа1 константа2 константа3 код подчиненного затвора Какие щиты нужно открыть7.1-0.157813.443179.195.17.15.1-0.1651614.052-187.30053.17.1:5.13.1-0.155313.17-175.574.17.1:5.1:3.1 Вот подробно: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:22 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProКстати, А зачем каждый подчиненный затвор открывает своих родителей? Разве не проще сделать так (показываю на изначальном примере, без оптимизации) Вот тут вы очень правы. Можно и так и это уже упрощает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:27 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proкстати, про форматирование кода вроде ты говорил, что ты понял, а опять насажал лишних отступов Ну я понял что не нужно стесняться делать отступы, вот и делаю их так, чтобы мне удобно было быстро пробежать по коду. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:28 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronНу я понял что не нужно стесняться делать отступы, вот и делаю их так, чтобы мне удобно было быстро пробежать по кодуя говорил, что не надо делать отступы там, где операторы идут последовательно и не подчинены друг другу. Разве RememberVSB = RememberVSB + intVSB как-то подчинен intVSB = -0.16516 * VB ^ 2 + 14.052 * VB - 187.3005 разве он не будет выполнен в любом случае после первого? vdekameronВот тут вы очень правы. Можно и так и это уже упрощает.тогда зачем нужен столбец таблицы "Какие щиты нужно открыть"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:37 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProvdekameronНу я понял что не нужно стесняться делать отступы, вот и делаю их так, чтобы мне удобно было быстро пробежать по кодуя говорил, что не надо делать отступы там, где операторы идут последовательно и не подчинены друг другу. Разве RememberVSB = RememberVSB + intVSB как-то подчинен intVSB = -0.16516 * VB ^ 2 + 14.052 * VB - 187.3005 разве он не будет выполнен в любом случае после первого? Ну значит в прошлый раз не до конца понял. Теперь понял, что если операторы идут последовательно то отступы лишние. (если они не подчинены друг-другу) Shocker.Proтогда зачем нужен столбец таблицы "Какие щиты нужно открыть"? Я когда строчил это сообщение еще не видел вашего 17405947 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Добрый день ,Shocker.Pro! Что скажете на это? Сделал с учетом того что вы сказали. И понял насколько это может упростить и сузить код. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 10:31 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Ну если работает как надо, значит ок. Разница в том, что у меня была рекурсия, а ты реализовал плоский цикл. Ну я бы еще убрал текст "ОткрытьЗатвор" - чего его 72 раза повторять? Достаточно только индекс затвора хранить. Следующим шагом по идее должен быть перенос всех констант во внешнее хранилище. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 10:46 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProСледующим шагом по идее должен быть перенос всех констант во внешнее хранилище. Так делается? Я хотел их хранить все в проекте, это не правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 11:07 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
И как ты их будешь менять, если понадобится? Перекомпилировать заново? Не, ну если это незыблемые вечные константы, то, конечно можешь зашить в код. Я не знаю специфики технологий, но что будет, если один из затворов встанет на капремонт? Опять программу переписывать и перекомпилировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 11:37 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProИ как ты их будешь менять, если понадобится? Перекомпилировать заново? Мда. Вопрос отпал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 11:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProРазница в том, что у меня была рекурсия, а ты реализовал плоский цикл. Кстати из книги, которую прочел, я понял что рекурсия не плохая штука, но до опр. момента, когда она начинает тормозить проект. Если в рекурсия большая, то цикл быстрее работает. Ну может я не так понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 11:47 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
в твоем случае 2мс никакого значения не имеют ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 12:16 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proв твоем случае 2мс никакого значения не имеют )Есть еще одно зло в программировании, называется оно "преждевременная оптимизация". Не нужно заниматься оптимизацией, если она реально не требуется, на это уходят время и силы, которые можно потратить на дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 12:19 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proесли она реально не требуется Мне кажется , что сегодня не требуется, а завтра вполне может потребоваться. А завтра уже будет сложнее оптимизировать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 12:21 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronМне кажетсявот это и называется "преждевременной оптимизацией". У тебя что, эта программа работает в режиме реального времени и затворы щелкают с миллисекундной скоростью? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 12:36 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProУ тебя что, эта программа работает в режиме реального времени и затворы щелкают с миллисекундной скоростью? Спорить глупо с тем, кто скушал уже много всего в этой области. Хранить константы пофиг где? Или и тут есть предпочтения? Я планирую в excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 12:54 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Можно и в экселе. Вопрос, каким способом ты их будешь загружать в программу? Лучше использовать тогда ODBC, чтобы было быстрее и не зависеть от наличия экселя на машине. Но я бы делал в текстовом файле. В CSV например. Его можно и экселем редактировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 13:32 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProНо я бы делал в текстовом файле. В CSV например. Его можно и экселем редактировать. Я в excel сохранил как CSV. Как оттуда доставать эти данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 14:25 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Antonariyукрощение кода Это к чему? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 14:39 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronЯ в excel сохранил как CSV. Как оттуда доставать эти данные?тут два варианта. Можно использовать ADO, чтобы подключиться к файлу через ODBC как к базе данных. Это как бы проще в принципе, но сложнее для новичка. Можно просто открыть файл как текстовый (смотри Open, Input#, Close), построчно прочитать и разобрать на запчасти в массив ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 15:13 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Вот как сохранились данные в CSV. как мне считать с него по столбцам. Сначала константу из одного столбца, потом из другого..... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 15:16 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronAntonariyукрощение кода Это к чему?к слову ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 15:17 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProМожно просто открыть файл как текстовый (смотри Open, Input#, Close), построчно прочитать и разобрать на запчасти в массив Что то на подобии? или снова не в ту степь? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 15:49 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Опять непонятно, что у тебя с отступами, что за ступеньки Считываешь одну строку, делишь функцией Split и записываешь в массив ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 16:32 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProСчитываешь одну строку, делишь функцией Split и записываешь в массив Чем так плохо? Те же яйца. Только не могу понять почему когда задаю А1,А2,А3 типа single выдает ошибку Type mismach , подсвечивая A1 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 16:44 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
потому что этот набор цифр, точек, минусов и точек запятой VB затруднился преобразовать в Single ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 16:48 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proпотому что этот набор цифр, точек, минусов и точек запятой VB затруднился преобразовать в Single Я из excel пробую. Там нет никаких точек с запятой. Обычные цифры. пробовал и с точкой и с запятой в качестве разделителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 16:52 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Считай строку в переменную и выведи ее на экран. Потом прочитай, что я тебе написал, как действовать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:01 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Хочу по-своему)) Так же тоже правильно как я привел. Уже разобрался. Дело не в том что VB затруднился распознать минусы, точки. Я убрал Line и оставил только Input и прекрасно определили данные как single ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:03 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronЯ убрал Line и оставил только Inputа, да, а я и забыл про эту возможность ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:09 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronХочу по-своему)) Так же тоже правильно как я привел. Уже разобрался. Дело не в том что VB затруднился распознать минусы, точки. Я убрал Line и оставил только Input и прекрасно определили данные как single а теперь смени региональные установки на английский и посмотри что у тебя случиться ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:19 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Konst_One а теперь смени региональные установки на английский и посмотри что у тебя случиться Включил , все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:41 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Konst_Oneа теперь смени региональные установки на английский и посмотри что у тебя случитьсяобрати внимание на скрин - у него там точка в качестве разделителя. Вполне возможно, что в прочитанном массиве уже только целая часть числа.... или у него и так стоит английский vdekameron, нельзя полагаться на неявную конверсию чисел, она будет работать по-разному при различных региональных настройках в виндузе ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:42 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronВключил , все работает.работает.... ошибок не выдает. А ты смотрел, ЧТО ИМЕННО попало в массив? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:43 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronKonst_One а теперь смени региональные установки на английский и посмотри что у тебя случиться Включил , все работает. не верю Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Konst_Oneне верю Код: vbnet 1. 2. 3. 4. 5. 6.
это код будет корректно работать в английском варианте, а в русском выдаст ошибку Но кто сказал, что в Input используется CSng? Скорее уж что-то типа Val, который не дает ошибку (но может не увидеть дробную часть) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:55 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProKonst_Oneне верю Код: vbnet 1. 2. 3. 4. 5. 6.
это код будет корректно работать в английском варианте, а в русском выдаст ошибку Но кто сказал, что в Input используется CSng? Скорее уж что-то типа Val, который не дает ошибку (но может не увидеть дробную часть)Даже наврал. Val корректно работает именно с точкой, так что тут, похоже, все ок ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:58 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
У меня тут пару минут осталось работать) Но не поленюсь скрины сделать) Это скрин при Нормальных настройках - Россия ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 17:59 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
бл. спешу) не тот. На первом скрине Русские, втором - Англ. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 18:01 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
а вот теперь подумай, что будет если на русском компе сохранят файлик, а на английском компе попытаются его открыть ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 18:07 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Konst_Oneа вот теперь подумай, что будет если на русском компе сохранят файлик, а на английском компе попытаются его открыть А это не тоже самое что делал я на одном и том же компе? Сохранил файл. Поменял рег. настройки на англ. и открыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 19:11 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProСчитываешь одну строку, делишь функцией Split и записываешь в массив Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Запись в строку и биение сплитом ведь не спасет при изменении рег. настроек Почему Type mismach? Ведь и cdbl определяет как double и массив задан как double ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 13:45 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronЗапись в строку и биение сплитом ведь не спасет при изменении рег. настроекНет. Сплит не нужен, я просто забыл, что можно читать не целиком строку. vdekameronПочему Type mismach? Ведь и cdbl определяет как double и массив задан как doubleCDbl не понимает точку в качестве десятичного разделителя. Ему нужно то, что настроено в панели управления как десятичный разделитель. То есть нужно либо использовать Val, либо предварительно заменять в тестовой строке точку на текущий десятичный разделитель. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:08 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProТо есть нужно либо использовать Val Val не подойдет. Т.к. он не работает при значениях меньше 1 Shocker.Proлибо предварительно заменять в тестовой строке точку на текущий десятичный разделитель. А как приказать менять точку именно на ТЕКУЩИЙ десятичный разделитель? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:15 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronVal не подойдет. Т.к. он не работает при значениях меньше 1с чего ты взял? продемонстрируй. vdekameronА как приказать менять точку именно на ТЕКУЩИЙ десятичный разделитель?вопрос сводится к тому, как получить текущий десятичный разделитель. Покури функцию Format$ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:25 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Не знал, что CDbl работает только с текущим разделителем. Также думал что Val в любом случае не работает с значением меньше 1, оказывается что не работает только с тек. разделителем. Возвращая значение - 0. А если точка стоит , то норм. Конечно мне проще использовать в данном случае Val , но я же не знаю что такое Format$ Поэтому почитаю про нее и попробую сделать вторым вариантом ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:40 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
vdekameronчто не работает только с тек. разделителемя выше писал, но ты прохлопал. Val работает с ТОЧКОЙ. CDbl/CSng - с текущим разделителем. Допустим, если у тебя всегда точка в исходном файле, то тебе достаточно Val. Костя поднял другой вопрос - что будет, если кто-то поправит файл так, что там будут запятые, а не точки. Если такого не предполагается (файл ты будешь править сам и блокнотом), то и ок. Можно делать проверки при чтении файла (все зависит от уровня дистрибуции - если пользуешься программой сам и для себя, можно и забить, если планируешь, что ее будет кто-то эксплуатировать - обязательно надо делать проверки при чтении файла (что есть все, что надо, что нет ничего лишнего, что правильные разделители, что значения попадают в приемлемый диапазон и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:47 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProМожно делать проверки при чтении файла (все зависит от уровня дистрибуции - если пользуешься программой сам и для себя, можно и забить, если планируешь, что ее будет кто-то эксплуатировать - обязательно надо делать проверки при чтении файла (что есть все, что надо, что нет ничего лишнего, что правильные разделители, что значения попадают в приемлемый диапазон и т.п.) Спасибо за этот совет. Не думал об этом. Код: vbnet 1. 2. 3. 4. 5. 6.
Я конечно был знаком с ф-ей Format , но думал что у нее узкая функциональность, сейчас читаю и очень интересно склько много может. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 14:58 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
все проще Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 15:00 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proвсе проще Можно еще так) Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 16:07 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
авторМожно еще так) Format(0#, "#.#") Плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 20:53 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Дело было вечером. Плохо было печени. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 20:54 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
По коду. Формат не спасет. Много по этому топиков было, и на этом сайте тоже, почитай, не будем повторяться. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 20:58 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
AndreyMpПо коду. Формат не спасет.не спасет от чего, интересно? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2015, 22:05 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
От региональных настроек. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 05:28 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Вопрос был, как определить текущий десятичный разделитель, и где тут "не спасет"? Спасение от региональных настроек - прямые руки программиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 11:26 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Все, все получилось. Осталось наверное самое сложное. Наведите на путь истинный плиз!!!) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
1)В дизайне сделаю поле из 72 клеток-( 8 щитов * 9 ступеней) 2)В дизайне помещу 8 каких то объектов, пусть даже image Вместо Код: vbnet 1.
Которая печатала какой щит нужно открыть на какую ступень. Хочу графически передвигать каждый щит( image) на опр. ступень. Подскажите плиз как лучше это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 20:38 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
нарисуй, что ты хочешь получить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2015, 22:30 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.Proнарисуй, что ты хочешь получить Для начала приведу снова код Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Массив B(i) текстовый. В нем в той же последовательности , что и в массивах констант, расположены данные по открытию щитов. Первый цикл - 1) Открываем 7_1 Второй цикл - 2) Открываем 5_1 Третий цикл - 3) Открываем 3_1 и т.д. Венцом этого проекта хотел сделать вместо скучных debug.print или print графическое перемещение щитов как привел на скрине. Как я уже сказал, все что на скрине я сделаю в дизайне. Единственное, нужно перемещать 8 щитов по 9 ступеням(всего 72 позиции) в той же последовательности что и выбираются данные из B(i). Но снова ступор как сделать. Создавать класс объекта, в котором объект будет по-очереди перемещать все щиты? Если да, то как объекту сообщать какой щит и на какую ступень должен шагнуть и когда ему остановиться. Или может есть другой вариант - проще (для меня) А то я понимаю что для вас любой вариант не сложный. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 10:52 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Я как-то не могу увидеть, в чем проблема. У тебя на экране массив контролов от 1 до 8 Все что нужно сделать вместо печати "Открываем A_Б", это Gate(A).Top = Б * 600 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 11:59 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProЯ как-то не могу увидеть, в чем проблема. Не знаю когда научусь видеть уже простые вещи Я вообще извратился Сделал плавное перемещение щитов. Код: vbnet 1. 2. 3. 4. 5.
Только когда они двигаются, за ними остается след, кот. при остановке исчезает, но все-равно некрасиво. Я думал что установив Autoredraw = true этого можно будет избежать. но не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 15:13 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
После перемещения контрола поставь Me.Refresh, если не поможет - DoEvents ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 15:25 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProПосле перемещения контрола поставь Me.Refresh, если не поможет - DoEvents refresh не помогло. Появилось жуткое мерцание при обновлении. А DoEvents помогло. Спасибо, сейчас почитаю про нее. не знаком был ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 15:39 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Правильней было бы двигать по таймеру. Тогда во-первых на каждой машине будет двигаться с одинаковой скоростью, во-вторых, не нужно будет DoEvents ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 15:42 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProПравильней было бы двигать по таймеру. Тогда во-первых на каждой машине будет двигаться с одинаковой скоростью, во-вторых, не нужно будет DoEvents Через таймер все-равно есть шлейф при движении( Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 17:27 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Ты что-то не то сваял. На каждый тик таймера должен быть один шаг элемента. Никаких For k = 1 To 100000 Ты же делал движения кружочков по таймеру, в чем затык? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2015, 17:29 |
|
Упрощение кода
|
|||
---|---|---|---|
#18+
Shocker.ProТы же делал движения кружочков по таймеру, в чем затык? Видимо перегрелся... Таймер выполняется только когда закончился цикл процедуры. А тогда уже двигается только последний щит Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2015, 10:35 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2155998]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
126ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 225ms |
0 / 0 |