Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 01:42   #11
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
Ключевым элементов является таблица, в нее вносят данные, в ней же формируют документы, она же дает возможность ручной правки готовых документов.
Если предполагается работа с документами, то VBA будет лучшим решением, т. к. есть полный доступ к данным.
Но это еще смотря какие документы...

Цитата:
Ограничение в самой структуре.
Что-то я его не заметил? Вы какие диалекты бейсика имеете в виду?

Цитата:
Есть идея целого цикла программ объединенных одной идеей, вот их костяк хотелось бы реализовать на Си, всю периферию на rexx
Я конечно не знаком с языком rexx, но судя по википедии, он интерпретируемый и как же собираетесь создать библиотеки на нем для периферии?
*PB* вне форума Ответить с цитированием
Старый 13.10.2011, 10:52   #12
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
Если предполагается работа с документами, то VBA будет лучшим решением, т. к. есть полный доступ к данным.
Но это еще смотря какие документы...
Документы буду создавать я, и как следствие буду иметь к ним полный доступ на любом языке программирования. Структура представления данных, их хранения и доступ к ним я так же буду организовывать сам, при чем тут VBA?
Ты кажется меня не правильно понял, "документ" это просто итоговый результат работы, оформленный в каком либо виде пригодном для просмотра и печати. С одним и тем же успехом это может быть и звуковой файл, и файл в формате Word, и текстовый файл, и лог и т.п. Содержание документов так же может быть самое разнообразное: договор, отчет, чек, должностная записка и т.п.

Цитата:
Сообщение от *PB* Посмотреть сообщение
Что-то я его не заметил? Вы какие диалекты бейсика имеете в виду?
В настоящий момент я считаю что понятие "тип переменой", "тип данных" как внешний фактор устарело в корне. Более того оно противоречит человеческому восприятию мира. Например я создал сложный тип переменной "медицинский скальпель", как я могу его использовать? Из ходя из типа переменной только в медицине. А в жизни я могу: починить обувь, отрезать часть лист бумаги, использовать его в гараже, и да же убить с его помощью человека. Как все это записать в типе? Да ни как, потому что если да же это описать, появятся ещё десятки возможных применения "медицинского скальпеля". По этому легче даже не пытаться это делать, а создать нечто описывающие фундаментальные свойства предмета (объекта, явления и т.п.), без привязки к каким либо типам данных. Еще пример: что такое "1"? Это байт, слово, вещественное число, символ или предложение, а может часть иного целого. А может это философская величина? Как вы используете это в своей жизни? Задумываетесь вы какого "типа" "1" в повседневной жизни, а сколько оно занимает место в вашем мозгу? Я думаю нет, просто берете и используете когда и как это удобно. Если все это так, тогда почему при программировании у вас должна болеть голова о типе "1"?

На бейсик я писал активно для спекки. Для новичка там это почти единственный язык программирования. Там я изучил родной бейсик, Beta Basic (работа с данными), Mega Basic (возможно делать вставки на ассемблере), Laser Basic (работа с графикой). Все эти диалекты заточены под свои задачи. После на IBM PC я пытался писать еще в паре вариантов бейсика, но быстро ушёл на паскаль, а за тем на rexx.
"Диалект языка программирования — это (относительно небольшая) вариация или расширение языка, сохраняющее при этом свою первозданную сущность." (с)
Судя по пока еще небольшим моим знаниям Си и QT4, можно назвать последнего диалектом.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 13.10.2011, 10:53   #13
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
Я конечно не знаком с языком rexx, но судя по википедии, он интерпретируемый и как же собираетесь создать библиотеки на нем для периферии?
Единственно что я не знаю как писать на rexx, это dll. Но то думаю, что задача решаема, просто она еще ни разу не вставала передо мной.
Как я уже писал rexx уникальное явление. С виду он имеет простую структуру, простые инструменты, что современными пользователями воспринимается как слабость (куда же без навороченных структур и конструкций, как же мы будем доказывать что мы крутые пацаны?). Но как раз эта простота дает колоссальные возможности. Ты думаешь не о способе представления данных и других "высоких" вещах, с которых начинается современное программирование, ты просто на привычном "человеческом" языке начинаешь работать с ними, простыми и потому понятными средствами. При программировании на rexx ты словно "общаешься" с товарищем, и просишь его сделать пару обыденных вещей: зайти в магазин купить хлеба, принести дрель и т.п. при чем на одном с ним языке. Это совершенно другой стиль, уровень программирования. К сожалению с ходу это не понять, знаю по себе, начал вникать что и как только через пол года, а до этого писал как привык на паскале (это то же можно).
Как пример скажу, что внутри нашего небольшого коллектива был почти полностью переписан на rexx фидошный софт. При чем IPmailer на писаный нами, работающий по протоколу Binkd'ы дает ~10% прирост скорости передачи данных по сравнению с самой Binkd'ой. При этом он до конца еще не оптимизирован и не компилирован в exe, а сам rexx во многих местах называют "медленным" языком. :))

К сожалению горе писатели в википедии сами мало о чем имеют понимания. По моим увлечениям и специальности я не нашел ни одно хотя бы отдалено правдивого материала. Одна лож, слухи, вымыслы, домыслы и сверху легкий налёт правильной информации (так сказать поперчили для видимости). Как сторонки теории заговора, я считаю что википедии создана только с одной целью - дезинформации населения земли, создания таких условия когда не возможно будет отличить лож от правды, и в дальнейшем подмены истинных знаний ложными("Истина -где-то рядом" (с) :). "Лучший раб - тот который не знает что он раб" (с) А что может быть проще в современных условия как подменить само понятие "раб" на ложное? А для этого википедии идеальный инструмент.

Но ИМХО мы отклонились от темы. А передо мной стоят вполне конкретные практические задачи.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 13.10.2011, 14:37   #14
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
Структура представления данных, их хранения и доступ к ним я так же буду организовывать сам, при чем тут VBA?
Ранее было упоминание об MSОffice вот я и подумал...

Цитата:
Например я создал сложный тип переменной "медицинский скальпель", как я могу его использовать?
А что мешает использовать свой тип переменной?
Я конечно в скальпелях вообще не разбираюсь и как они классифицируются, понятия не имею, поэтому программа сравнивает их только по длине.
Код:
Structure Scalpel ; Описание типа "Скальпель".
  Name.s           ; Название скальпеля.
  Length.i         ; Длина скальпеля.
EndStructure


Procedure TestScalpel(*Candidate.Scalpel, Min, Max)
  Protected Result = #False
  
  If *Candidate\Length >= Min And *Candidate\Length <= Max
    Result = #True
  EndIf
  
  ProcedureReturn Result
EndProcedure


NewList MyScalpel.Scalpel() ; Динамически связанный список с типом "Скальпель".

; Заполнение списка

AddElement(MyScalpel()) ; Добавили элемент в список.
  MyScalpel()\Name   = "Короткий"
  MyScalpel()\Length = 10
AddElement(MyScalpel()) ; Добавили элемент в список.
  MyScalpel()\Name   = "Средний"
  MyScalpel()\Length = 20
AddElement(MyScalpel()) ; Добавили элемент в список.
  MyScalpel()\Name   = "Длинный"
  MyScalpel()\Length = 30
AddElement(MyScalpel()) ; Добавили элемент в список.
  MyScalpel()\Name   = "Очень длинный"
  MyScalpel()\Length = 40
  
String$ = ""  
  
ForEach MyScalpel() ; Перебор всех элементов списка, от начала до конца.
  
  If TestScalpel(@MyScalpel(), 16, 38) = #True ; Длина скальпеля должна быть от 16 до 38.
    String$ + "Скальпель '"+MyScalpel()\Name+"' подходит"+#CRLF$
  Else
    String$ + "Скальпель '"+MyScalpel()\Name+"' не подходит"+#CRLF$
  EndIf
  
Next

MessageRequester("Тестирование скальпелей", String$)
End
Скомпилированная программа во вложении. К слову, ее можно без правки исходника, скомпилировать под Windows, Linux и MacOS X.

Цитата:
Как все это записать в типе?
Создаете структуру и пишете там все что нужно об параметрах объекта.

Цитата:
Еще пример: что такое "1"? Это байт, слово, вещественное число, символ или предложение, а может часть иного целого. А может это философская величина? Как вы используете это в своей жизни? Задумываетесь вы какого "типа" "1" в повседневной жизни, а сколько оно занимает место в вашем мозгу? Я думаю нет, просто берете и используете когда и как это удобно. Если все это так, тогда почему при программировании у вас должна болеть голова о типе "1"?
Программа должна четко знать что такое "1", иначе результат может быть не такой как его ожидают!

Цитата:
На бейсик я писал активно для спекки.
Это было очень давно и с тех пор многое изменилось и появились новые диалекты бейсика, которые уже не уступают паскалю или Си.

Цитата:
Судя по пока еще небольшим моим знаниям Си и QT4, можно назвать последнего диалектом.
QT - это всего лишь библиотека для сей и не более того.

Цитата:
Единственно что я не знаю как писать на rexx, это dll
Для создания DLL нужен компилятор. Даже байт-код вряд ли тут прокатит.
Вложения
Тип файла: rar Скальпель.rar (3.6 Кб, 5 просмотров)
*PB* вне форума Ответить с цитированием
Старый 13.10.2011, 16:50   #15
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
А что мешает использовать свой тип переменной?
Скомпилированная программа во вложении. К слову, ее можно без правки исходника, скомпилировать под Windows, Linux и MacOS X.
Создаете структуру и пишете там все что нужно об параметрах объекта.
Ни что не мешает. Именно так и нужно поступать. Но я не могу использовать этот произвольно (именно об этом я говорю), в соответствии с той ситуацией которая сложилась. Условно я могу сделать так (как я понимаю на настоящий момент):
1. Явное или не явное преобразование типов. Что почти невозможно при сложных структурах данных.
2. Перегрузить функции. Само наличие такой возможности ИМХО противоречит условиям структурного программирования. Но я так же вижу что без него никуда.
Я не могу просто взять и использовать данные... Я обязательно должен как-то преобразовать данные под код. Что не естественно для человека.

Цитата:
Сообщение от *PB* Посмотреть сообщение
Программа должна четко знать что такое "1", иначе результат может быть не такой как его ожидают!
Согласен. Но только для тех языков программирования которые опираются на типы данных. А это вовсе не обязательное условие. Тут есть несколько путей решение задачи, если интересно можно обсудить.
Пока беру на себя смелость просто утверждать: требование указывать тип переменных устарело, и более того мешает дальнейшему развитию компьютерной мысли.

Цитата:
Сообщение от *PB* Посмотреть сообщение
Это было очень давно и с тех пор многое изменилось и появились новые диалекты бейсика, которые уже не уступают паскалю или Си.
Да ни чего не изменилось. Я уже писал что на мой субъективный взгляд базовые основы Beta Basic'а на голову выше базовых основ VBA. Ничего нового я в VBA не увидел, да же наоборот не нашел несколько нужных мне вещей (которые были в Beta Basic'е). Так же мы использовали компиляторы, которые в разы повышали скорость программ и т.п. В общем в этом я прогресса с 1992 года не наблюдаю, только все стало немного удобнее.

Цитата:
Сообщение от *PB* Посмотреть сообщение
QT - это всего лишь библиотека для сей и не более того.
Я и не спорю. Но система сигналов, которая отсутствует в Си уже выделяет его. Может быть со временем QT окончательно сформируется в диалект.

Цитата:
Сообщение от *PB* Посмотреть сообщение
Для создания DLL нужен компилятор. Даже байт-код вряд ли тут прокатит.
Есть компилятор в exe. Написание компилятора в dll дело техники. Но большой нужды в этом нет, так как и без этого можно организовывать библиотеки.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 13.10.2011, 17:24   #16
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
1. Явное или не явное преобразование типов. Что почти невозможно при сложных структурах данных.
Например, как преобразовать тип "Скальпель" в тип "Обувь"?
Ведь в пером типе нет описания второго, поэтому корректное преобразование невозможно!

Цитата:
Да ни чего не изменилось. Я уже писал что на мой субъективный взгляд базовые основы Beta Basic'а на голову выше базовых основ VBA. Ничего нового я в VBA не увидел, да же наоборот не нашел несколько нужных мне вещей (которые были в Beta Basic'е).
VBA был разработал для внедрения в документы M$ и в нем могут отсутствовать некоторые вещи, не используемые в документах.
Нужно оценивать бейсик по полноценным диалектам, таким как PowerBasic, PureBasic, FreeBasic и др.
Я конечно не знаком с Beta Basic, но думаю что ему очень далеко по возможностям до трех вышеперечисленных диалектов. Я очень сомневаюсь что в нем есть такой же отладчик программ как в PureBasic. А без отладчика, серьезный проект написать очень сложно!

Последний раз редактировалось *PB*; 13.10.2011 в 17:28.
*PB* вне форума Ответить с цитированием
Старый 13.10.2011, 20:04   #17
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
Например, как преобразовать тип "Скальпель" в тип "Обувь"?
Ведь в пером типе нет описания второго, поэтому корректное преобразование невозможно!
Преобразовать нельзя. Но если нет понятия "тип", значит нет понятия "преобразования типа". То есть задача разрешилась сама. А вот написать процедуру которая корректно отработает оба объекта можно без проблем, при условии что нет понятия "тип".

Цитата:
Сообщение от *PB* Посмотреть сообщение
Нужно оценивать бейсик по полноценным диалектам, таким как PowerBasic, PureBasic, FreeBasic и др.
Кстати может знаешь, мне нужно выполнить переменную как строку. То есть в переменной содержится команда (строка или целый кусок кода) как текст, мне необходимо выполнить это так как будто это было введено с клавиатуры. В ряде языков программирования есть команда "interpred" или её аналоги, обычно название созвучно.
Не нашел такого в VBA, гуру в интернете не помогли.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 13.10.2011, 20:25   #18
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
То есть в переменной содержится команда (строка или целый кусок кода) как текст, мне необходимо выполнить это так как будто это было введено с клавиатуры.
В переменной код программы?
Такое допустимо в интерпретируемых языках, а в компилируемых, программа превращается в машинный код (код, непосредственно выполняемый процессором) и там нет интерпретатора для выполнения исходного кода программы из переменной.
Вот если бы в переменной был бы машинных код, то выполнить можно.
*PB* вне форума Ответить с цитированием
Старый 14.10.2011, 10:22   #19
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от *PB* Посмотреть сообщение
В переменной код программы?
Такое допустимо в интерпретируемых языках, а в компилируемых, программа превращается в машинный код (код, непосредственно выполняемый процессором) и там нет интерпретатора для выполнения исходного кода программы из переменной.
Вот если бы в переменной был бы машинных код, то выполнить можно.
Да это можно в интерпретируемых языках, но ведь эти программы можно компилировать в exe, то есть по сути превратить в машинный код. При этом команды "interpred" не утрачивают свою работоспособность. Значит интерпретируемость не является обязательным фактором. Более того удалось найти один путь в VBA для Excel. В специально созданном модуле, путем прямого обращения к проекта заносятся строки, визуально они там появляются и остаются после выполнения программы, и уже эти строки можно выполнить обычным способом. Но не удобность и не гибкость данного решения огромны, и сводит его полезность к нулю. Но иллюстрирует возможно подобных действий. Возможно VBA для Excel интерпретируемым языкам. Но остается факт сохранения работоспособности при компиляции. Может и за счет увеличения конечного кода, не проверял.
С уважением, Алексей.

Последний раз редактировалось tae1980; 14.10.2011 в 10:26.
tae1980 вне форума Ответить с цитированием
Старый 14.10.2011, 10:53   #20
*PB*
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 558
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
Да это можно в интерпретируемых языках, но ведь эти программы можно компилировать в exe, то есть по сути превратить в машинный код. При этом команды "interpred" не утрачивают свою работоспособность. Значит интерпретируемость не является обязательным фактором.
Я очень сомневаюсь что создается native бинарник при компиляции.
Скорее всего к интерпретатору дописывается скрипт программы. Это нельзя назвать компиляцией в традиционном понимании этого слова, т. к. исходник не превращается в машинный код.

Последний раз редактировалось *PB*; 14.10.2011 в 10:55.
*PB* вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для чайника arthur1 БД в Delphi 0 26.09.2011 08:57
C# для чайника... 8oOoRPM C# (си шарп) 4 21.06.2011 22:26
макрос для чайника) iriska26 Microsoft Office Word 4 21.03.2011 10:31
PostgreSQL в с++ для чайника ccfytrr Фриланс 1 04.11.2010 03:03
Фильтр для чайника Kolik317 БД в Delphi 1 05.10.2010 20:53