:: Visual Foxpro, Foxpro for DOS
Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
Всем привет.

Необходимо создать файл со списком всех глобальных переменных
по принципу одна переменная со значением одна строка, сортированные по алфавиту.


DISPLAY MEMORY LIKE "G_*" TO FILE "E:\GLOBAL_VARIABLES.TXT" NOCONSOLE



Исправлено 3 раз(а). Последнее : AdamAry, 30.12.16 07:52
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
DISPLAY MEMORY будет останавливать вывод данных при заполнении окна/текущего экрана. Поэтому лучше использовать LIST MEMORY. Полученный текстовый файл можно загнать в таблицу, в таблице сделать сортировку (индекс) по имени переменной, и далее выгрузить "куда угодно".
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
Как из LIST MEMORY загнать в таблицу?
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Загнать не из LIST MEMORY, а из файла, сформированного этой командой. Структура таблицы может быть любой, и кроме реквизита name можно добавить реквизит, содержащий только имя переменной, например.
Create my table (name c(120))
Append from e:\global_variables SDF

А дальше уже обрабатывать значения реквизита Name.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
В "GLOBAL_VARIABLES.TXT" будет фактически 4 поля, как из них загнать в таблицу из 4 иногда 5 полей?
Причём если тип переменной "N", то в текстовом поле будет фактически 5 полей: 4. поле: 5, а 6. поле: ( 5.00000000).
И как это всё загнать в таблицу?
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
AdamAry
Необходимо создать файл со списком всех глобальных переменных
по принципу одна переменная со значением одна строка, сортированные по алфавиту.
А можно узнать ЗАЧЕМ? Из чего возникла такая необходимость? Уже напоролся на известные грабли?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
AdamAry
В "GLOBAL_VARIABLES.TXT" будет фактически 4 поля, как из них загнать в таблицу из 4 иногда 5 полей?
Причём если тип переменной "N", то в текстовом поле будет фактически 5 полей: 4. поле: 5, а 6. поле: ( 5.00000000).
И как это всё загнать в таблицу?

Вообще говоря, сказанного ранее вполне достаточно. Писать готовый код в качестве "помощи" на заданный вопрос здесь явно ни к чему.

Надо распечатать полученный командой LIST MEMORY файл и изучить структуру строки для каждого из возможных типов переменных. Если даже и не все типы переменных выводятся, надо искусственно сформировать все возможные типы переменных в выходной файл. Далее написать обработку для каждого типа переменных. Это более чем тривиальная задача, и ее нужно самостоятельно выполнить. Было бы полезно получившийся код выложить здесь. Возможно, после этого кто-нибудь укажет ошибки в коде или предложит еще какой-нибудь вариант обработки.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
Цитата:
Писать готовый код в качестве "помощи" на заданный вопрос здесь явно ни к чему.
писать нет необходимости, может просто у кого уже что-то готовое есть.


Исправлено 2 раз(а). Последнее : AdamAry, 30.12.16 10:03
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
ssa
А можно узнать ЗАЧЕМ? Из чего возникла такая необходимость? Уже напоролся на известные грабли?
1. По известному значению переменной, надо найти название этой переменной.
2. Имеется большое колво переменных и надо сделать быстрый поиск по их значениям.
3. Какие ещё грабли?

Было бы здорово если у MS были функции, загоняющие любые переменные или объекты и т.д с их значениями в таблицу.



Исправлено 1 раз(а). Последнее : AdamAry, 30.12.16 10:05
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
AdamAry
Цитата:
Писать готовый код в качестве "помощи" на заданный вопрос здесь явно ни к чему.
писать нет необходимости, может просто у кого уже что-то готовое есть.

Что касается меня, то с большой осторожностью применяю чужой код. Как минимум его надо изучить и протестировать на каких-то контрольных значениях. Времени на это может уйти больше, чем на написание своего кода. Конечно, бывают такие наработки, что позволяют использовать их в качестве "черного ящика". Но чужой код - это чужой код. И если вдруг "где-то что-то работает не так", всегда будут возникать подспудные мысли - а вдруг это в чужом коде что-то не так работает? Надо ли иметь такое "бесплатное счастье"?

Что же касается обработки символьных строк, то соответствующих функций имеется "немеряно", и можно обработать фактически любую структурированную информацию. Именно такую информацию и выдает команда List memory
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
AdamAry
1. По известному значению переменной, надо найти название этой переменной.
Что-то за несколько десятков лет работы у меня (да и не только у меня) такая необходимость не возникала. Что-то новенькое? Не томите, просветите нас.
Цитата:
2. Имеется большое колво переменных и надо сделать быстрый поиск по их значениям.
То же пункт 1, только во множественном числе?
Цитата:
3. Какие ещё грабли?
Обыкновенные, возникающие при большом количестве переменных, особенно глобальных. Теряется контроль над ними.
Цитата:
Было бы здорово если у MS были функции, загоняющие любые переменные или объекты и т.д с их значениями в таблицу.
Кому? Кому было бы лучше? На основании каких сакральных знаний вы взяли на себя смелость оценивать то, знания чего, даже хотя бы на среднем уровне, вы тут пока не продемонстрировали?

------------------
Лень - это неосознанная мудрость.




Исправлено 1 раз(а). Последнее : ssa, 30.12.16 11:05
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
AdamAry
Цитата:
Писать готовый код в качестве "помощи" на заданный вопрос здесь явно ни к чему.
писать нет необходимости, может просто у кого уже что-то готовое есть.
За уже не один десяток лет работы вы первый с этой гениальной идеей.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Сначала плохим глобальные, потом их разыскиваем


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
ssa
1. По известному значению переменной, надо найти название этой переменной.
Что-то за несколько десятков лет работы у меня (да и не только у меня) такая необходимость не возникала. Что-то новенькое? Не томите, просветите нас.
А вот сейчас такая необходимость возникла.

Цитата:
3. Какие ещё грабли?
Обыкновенные, возникающие при большом количестве переменных, особенно глобальных. Теряется контроль над ними.
Проект писал не я, поэтому большое количество глобальных уже существуют как факт, надо принимать это как данность.

Абсолютно с этим согласен:
Цитата:
Обыкновенные, возникающие при большом количестве переменных, особенно глобальных. Теряется контроль над ними.
Могу лишь добавить что "не при большом количестве переменных", а при весьма превеликом множестве переменных.

ssa
Было бы здорово если у MS были функции, загоняющие любые переменные или объекты и т.д с их значениями в таблицу.
Кому? Кому было бы лучше? На основании каких сакральных знаний вы взяли на себя смелость оценивать то, знания чего,
даже хотя бы на среднем уровне, вы тут пока не продемонстрировали?
VFP кодерам.
На основании необходимости.
Здесь я не демонстрировал знания, а задавал вопрос:
Лучше 5 минут замешательства при задавании вопроса и отменная качественная работа, чем замешательство на всю жизнь без задавания.

"За уже не один десяток лет работы вы первый с этой гениальной идеей.",
значит не было необходимости.
Всё гениальное просто.



Исправлено 13 раз(а). Последнее : AdamAry, 11.01.17 13:09
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
1. Текст, полученный из DISPLAY MEMORY разбери на строки, например в массив:
ALINES(MASS, многострочный текст), или просто перебираем строки в файле FGETS...
2. Перебираем строки в массиве MASS, каждую строку детектируем, что она представляет собой описатель переменной (а не заголовок или "итого"), например:
Если
GETWORDNUM(MASS[m.i], 2)="Pub" .AND.; 2е слово - область видимости переменной
LEN(GETWORDNUM(MASS[m.i], 3))=1 && однобуквенный тип переменной
значит GETWORDNUM(MASS[m.i], 1) есть имя переменной.
3. При положительном детектировании строки-описателя имеем GETWORDNUM(MASS[m.i],4) (вобще все, начиная с 4го слова) есть содержимое переменной в человеческом представлении. Но лучше взять ее значение как EVALUATE(имя_переменной), т.е. EVALUATE(GETWORDNUM(MASS[m.i],1))
4. На каждой строке массива MASS[m.i], при положительном детектировании нужного, записываем в табличку имя переменной, и ее значение.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
AdamAry
вот сейчас такая необходимость возникла.
И мы, наконец-то, узнаем зачем и для чего?
Цитата:

ssa
Было бы здорово если у MS были функции, загоняющие любые переменные или объекты и т.д с их значениями в таблицу.
Кому? Кому было бы лучше? На основании каких сакральных знаний вы взяли на себя смелость оценивать то, знания чего,
даже хотя бы на среднем уровне, вы тут пока не продемонстрировали?
VFP кодерам.
Еще раз - вы имеете смелость говорить за всех кодеров? На каком основании?
Цитата:
На основании необходимости.
Какой? Покажите нам источник этой необходимости.
Цитата:
Здесь я не демонстрировал знания, а задавал вопрос:
Уровень ваших вопросов демонстрирует уровень ваших знаний.
Цитата:
Лучше 5 минут неудобства при задавании вопроса и отменная качественная работа, чем всю жизнь в позоре без задавания.
Вам намекнули, что вы занимаетесь ерундой. И потому о качестве здесь говорить не приходится совсем. Но вы с упорством, достойным лучше применения, делаете вид, что не заметили этих намеков и продолжаете тупо долбить в одну точку. Или вы намеков не понимаете?
Цитата:
"За уже не один десяток лет работы вы первый с этой гениальной идеей.",
значит не было необходимости.
Всё гениальное просто.
Нимб голову не жмёт?
Ну и про доставшееся наследство - вы действительно считает, что вы прямо таки первый, кто с этим столкнулся?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
vnkor

Сообщений: 324
Дата регистрации: 04.10.2007
Может, проще поискать в самом проекте на предмет вхождения строки "G_"?
Ratings: 0 negative/1 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
AdamAry
Автор

Сообщений: 843
Дата регистрации: 14.12.2015
Как бы ты искал на моём месте, зная только значение, но не зная, где это храниться?



Исправлено 7 раз(а). Последнее : AdamAry, 11.01.17 12:28
Ratings: 0 negative/0 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
AdamAry
Раз речь зашла об уровне, то мой уровень по моему мнению выше, чем уровень программистов создавших фокс на несколько порядков.

Ребята, ну это нужно в Скрижали. Давайте попросим товарища Simple777.
Ratings: 0 negative/3 positive
Re: Файл со списком всех глобальных переменных по принципу одна переменная со значением одна строка, сортированные по алфавиту
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Безусловно. [attachment 26839 bs.gif]
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика