Re: targrid | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
спасибо огромное! теперь все работает!
|
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Никакие числовые переменные не идут в виде "0,000" - они только показываются вам с тем разделителем, который выставлен в настройках. А вот числовые константы, которые вы используете в программе, должны быть написаны только через "." Ну, а функция STR(), преобразующая число в строку, использует (такова её особенность) тот символ-разделитель, который указан в настройках - она же не знает, что позже вы вновь захотите использовать это число-строку как числовую константу. Вот ей в данном случае и надо помочь. |
Re: targrid | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Угу. ------------------ Лень - это неосознанная мудрость. |
Re: targrid | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
В том числе и представленное в виде информации к размышлению? ------------------ Лень - это неосознанная мудрость. |
Re: targrid | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
а там не понял, иногда тот фильтр не сбрасывался, но нам важнее выставиль фильтр и откинуть 0 или отобразить остатки товара с 0 , а потом чаще всего форму печатают, и делают заказ поставщику...
|
Re: targrid | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
А зря. Там показано как одной строкой заменяется все закомментированное. Заодно избавляя от макроподстановки. И значительно быстрее. Ибо нет макро и выполняется одной встроенной командой, а не кучей вызовов. И вообще, в остальных местах циклы бегания по объектам типа Tarheader2 заменяются на такой:
------------------ Лень - это неосознанная мудрость. |
Re: targrid | |
---|---|
of63 Сообщений: 25253 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() за макро - выражение
Упражнения с макро m.x = "_TALLY" m.x = EVAЛ(m.x) && N-значение, да, громоздко, но * еще m.x = 1 m.x = ALLTRIM(STR(m.x)) && X - было число, стала строка m.x = "m.имя" + m.x && тип переменных подсказывает, что хотел автор - прочитать переменную под именем "имя1" m.x = EVALUATE(m.x) && или m.x = &x Фокс - своеобразныей "синтаксически" язык |
Re: targrid | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
И, как обычно, совершенно не понятно, что хотел сказать автор, и какое отношение это имеет к обсуждаемому вопросу. Очередная попытка доказать необходимость применения макро? ------------------ Лень - это неосознанная мудрость. |
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
С некоторых далёких пор такие конструкции можно заменять на: m.x = TRAN(m.x) |
Re: targrid | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
С заменой ALLTRIM(STR()) на TRANSFORM() полностью согласен. А вот с использованием для всего и вся только одной переменной, которая по ходу работы программы меняет свой тип - не соглашусь. Но спишем пока всё на особенности товарища Олега, это его "фишка" ------------------ Лень - это неосознанная мудрость. |
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:В целом - да, но это сильно зависит от "контекста". Скажем, если числовой X больше не может понадобиться, то большого смысла заводить для строки ещё одну переменную я не вижу. Тем более, если переменная имеет такое "непонятное" имя как "просто Х". В конце концов, дело не только в типе. Когда мы пишем: s = CHRT(s,'abc','xyz')то мы не меняем тип, но сохранять ли результат в ту же переменную или в новую, зависит в большой степени от того, пригодится ли нам ещё её исходное значение. Иными словами, вводим ли мы тем самым "новое понятие" или просто меняем значение (а иногда и тип) существующего. Во всяком случае, таков мой подход к этой "проблеме". |
Re: targrid | |
---|---|
of63 Сообщений: 25253 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Про m.x сказал, скажи и про m.i скажи тогда. Как ты назовешь переменную в FOR ? Естественно I (m.i), а не iCountThisFor, потомучто перегрузка глаза.... хотя, кому как...
>вводим ли мы тем самым "новое понятие" или просто меняем значение (а иногда и тип) существующего. нет, просто эстетика (у каждого своя) программерства, Серега () тут еще примешивается в восприятии значительность/незначительность переменно (и даже константы PUBLIC) чаще пишу в коде момент неактуальности переменной, типа "RELEASE I", ну или , порабочекресстяьнски RELEASE m.i (это одно и тоже с предыдущим, в условностях фокса). Этот RELEASE даетвозможость узнать, при поиске в текстовом редакторе... Надоело писать ) Исправлено 2 раз(а). Последнее : of63, 11.03.23 21:05 |
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Не знаю ничего про "эстетику программерства", но могу пояснить, что я имел в виду: 1) когда ты принимаешь некий параметр, например, "количество чего-то там" в виде строки, и тут же меняешь тип, преобразовывая его к числу, ты не создал "новое понятие" - как было у тебя "количество чего-то там", так оно им и осталось. И если та строка тебе больше не потребуется, то я бы не стал создавать новую переменную, несмотря на то, что её тип изменился: qty = VAL(qty) 2) и совсем другое дело, когда ты принимаешь "количество чего-то там", проводишь над ним некие действия, а результат, который "количеством" уже не является, сохраняешь в той же переменной, мотивируя тем же - исходное значение больше не пригодится: val123 = some_function(val123) && получили "массу чего-то там" |
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Зависит от того, насколько мне важно внутри цикла понимать, что именно здесь меняется. Обычно это может быть важно, если "внутренности" цикла не охватываются одним взглядом, а цикл - не один, а несколько вложенных и по разным объектам - например, книга, страница, слово. И тогда вместо i, j, k я предпочту что-то более понятное - nobook, nopage, noword, даже если речь идёт о сканировании массивов, имеющих имена abook, apage, aword. И когда мне нужно будет обратиться к элементу массива apage, мне не придётся думать, какую букву из набора (i, j, k) надо с ним использовать. Я уж не говорю о двумерных массивах, где нередко появляется желание знать, что есть что. К тому же, переменные управления циклом не всегда используются как индексы массивов, и в этих случаях обезличенные (i, j, k) ни писать, ни понимать написанное не помогут, Например, ты генеришь URL-ы страниц какого-то сайта для последующего чтения, которые отличаются параметрами: url_pic = 'https://.............php?&page=###&q=1' Здесь я предпочту использовать переменную nopage в цикле по номерам страниц, которую и буду подставлять в адрес вместо ### (даже если цикл один и он прост):
Исправлено 2 раз(а). Последнее : akvvohinc, 12.03.23 04:38 |
Re: targrid | |
---|---|
of63 Сообщений: 25253 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Понял склад мысли! ) раз мозгу нужно доп. символика кроме собственно обозначения, символа (не i, а nobook), то... раз у тебя так, то так, но, ... не буду про "но". Серега, тебя читаю с интересом!
|
Re: targrid | |
---|---|
of63 Сообщений: 25253 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Я уж не говорю о двумерных массивах, где нередко появляется желание знать, что есть что.
А как ты относишься к такому упрощению:
Исправлено 1 раз(а). Последнее : of63, 17.03.23 21:53 |
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Сложно сказать, насколько это удобно, так как никогда не пользовался чем-то подобным - вопрос привычки, я думаю. Но сейчас для такого случая я бы просто создал курсор, а не массив. Когда-то в ДОСе ограничение на количество открытых файлов могло этому мешать, да и скорость работы с дисками тогда была существенно ниже. Сейчас у меня нет таких задач, где бы разница в скорости работы с массивами и курсорами была настолько важна, чтобы предпочесть массив. |
Re: targrid | |
---|---|
of63 Сообщений: 25253 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
"Бесконечность не предел" (Баз Светик) )
Фокс в принципе тормозной ЯП, нетормозные, кроме C,CPP без извратов, - только есть "быстрый" (ассемблер идеален, но это сложно для входа в программирование, сейчас не знаю кто потратит время на освоение специфической системы команд спецапроца... это печально, за это надо бороться, за специфику некоторых тонких вехей, кроме аромата духов, или аромата кварков, есть техническая, "процессорная", специфика, которую поддерживают не только нидерланды (=америка в этом деле), азиаты). По практике - всё тормозное, ВСЁ, если не тормозное , то не хватает каких-то "привычных" збс-подсказок, умолчаний. Не тормозное - это что-то простое как камень (вернуть время UTC что-ли, и то, можно дое... чтобы сделать эту функцию неверной, если заморочиться на время, точнее, чем пересылки пакетов, на время радиосигнала, на промежуточные спутники, рассылающие его... Хотя есть GPS, GLONASS, там это решено без интернета слб... |
Re: targrid | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Но если придерживаться венгерской нотации, как это рекомендует документация на VFP, то возникнет путаница, особенно при командной работе.
|
Re: targrid | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Может быть. Но я начал "что-то писать" еще в институте в начале 80-х с ЕС и до знакомства с Фоксом, и нам такое не преподавали - так что мои переменные ей не следуют. А по командной работе - большую часть трудовой деятельности я провел в таких конторах, где такого понятия и не было, я был самым молодым, а остальные вообще были самоучками, так что путаница возникала, но по большей части не из-за имен переменных. |
© 2000-2024 Fox Club  |