FreeBasic
Главная
Вход
Регистрация
Четверг, 28.03.2024, 17:45Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » получение даты файлов (в зависимости от даты стирает эти файлы в папке)
получение даты файлов
pdskpostДата: Суббота, 30.09.2017, 17:06 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Добрый день.
Подскажите, как в FreeBasic получить дату самого старого файла в каталоге, и, если дата старше, скажем, месяца, стереть его через dos-команду, что - то типа
Код
echo y| del *.* >null

или встроенными средствами работы с файловой системой.
Спасибо.
 
haavДата: Воскресенье, 01.10.2017, 07:20 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Для Windows:

Библиотека window9 (функции DirectoryEntryDate , DeleteFile)

Для Linux решения не знаю, но вроде через терминал можно с помощью debugfs -R , а для удаления команда freebasic: kill


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
VitaminДата: Воскресенье, 01.10.2017, 11:26 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 55
Репутация: 4
Статус: Offline
pdskpost
Получение даты и времени модификации файла:


Код
#Include "vbcompat.bi"

Dim filename As String, d As Double

filename="C:\2.txt"

Print "File last modified: ";
d = FileDateTime(filename)
'Print Format(d, "hh:mm")
Print Format(d, "yyyy-mm-dd h:mm AM/PM")

Sleep


Сообщение отредактировал Vitamin - Воскресенье, 01.10.2017, 12:10
 
quiet_snow_losДата: Понедельник, 02.10.2017, 06:43 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
У Стаса на сайте была прожка что-то типа архивирования директории, порыщите в коде, найдёте
функцию сканирования директории, далее используем код выше от Vitamin. SERIAL дата это простейший
формат, отнимаем от Double числа значение 30 (т.е. дней) и получаем нужное значение. Удаляем
необх файлы KILL-ом по условию. Делов на пол часа. Трудитесь други.

P.S: Ну а линукс пользователи по обычаю без window9 будут страдать, через пайпы и терминал, ммм.


Сообщение отредактировал quiet_snow_los - Понедельник, 02.10.2017, 06:47
 
WQДата: Понедельник, 02.10.2017, 17:52 | Сообщение # 5
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Цитата quiet_snow_los ()
P.S: Ну а линукс пользователи по обычаю без window9 будут страдать, через пайпы и терминал, ммм.

Не совсем так:
Цитата
#Include Once "dir.bi"
#Include Once "vbcompat.bi"

Sub list_files (ByRef filespec As String, ByVal attrib As Integer)
Dim As String filename = Dir(filespec & "*", attrib)
Do While Len(filename) > 0
Dim d As Double
d = FileDateTime(filespec & filename)
? filename, Format(d, "yyyy-mm-dd h:mm AM/PM")
filename = Dir()
Loop
End Sub

?
list_files ("D:\Desktop\Release\" , fbArchive)

Sleep

Этот код работает как в Windows, так и в Linux, эти функции FB кроссплатформенные

Мало того, в linux функции полноценные, т.к. (по крайней мере в более-менее новых дистрибутивах) поддерживают utf-8 и могут работать с файлами с юникодом в названиях и путях. 
А в Win стандартные функции юникод не поддерживают, т.е. при наличии каких-нибудь иероглифов в пути тот же FileDateTime ничего не покажет. 
Window9 также юникод не поддерживает.

Поэтому для полноценной работы в Windows нужно использовать WinApi функции с Wstring и т.д.

Также в библиотеке fltk (со статической линковкой, добавляет килобайт 50) есть ряд функций для работы с файлами, например, flFilenameList, Fl_fopen, Fl_rename и т.д.
Эти функции принимают пути в utf-8, кроссплатформенные. Собственно, на самом деле, это обернутые функции из стандартной библиотеки C.

В своих программах я использую несколько самописных кроссплатформенных функций  - например, получение массива названий файлов из указанной папки. Названия файлов возвращаются в utf-8. В Win используется WinApi, в Linux - библиотеку на C, скомпилированную в .a файл.

Почему в Linux не используется функция Dir, пример которой приведен выше? Потому что при работе с большим количеством файлов она зависала.
Не знаю, в чем причина, в FB или еще где, в итоге было проще взять пример получения списка файлов на C на основе функций стандартной библиотеки.

А функции из fltk не подошли по причине недостаточно свободной лицензии этой библиотеки.
Также и c другими функциями, например, заменой полезнейшой FileExists, функции, определяющей, является ли объект папкой и т.д.

Конечно, все это не без проблем, например, оказалось, что функция декодирования utf из utf_conv.bi в fb 1.05 декодирует неправильно , пришлось писать очередной велосипед и т.п. (вроде в бета версии 1.06 исправлено)

Думаю, следовало бы оформить набор таких функций и выложить с описанием, возможно, кому-нибудь пригодится
 
haavДата: Понедельник, 02.10.2017, 19:50 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата
FileDateTime


А меня че-то заглючило на "времени создания файла" после слов топикстартера:

Цитата
получить дату самого старого файла в каталоге


Поэтому я и предложил DirectoryEntryDate, ведь FileDateTime возвращает время изменения файла. В принципе , если человеку просто нужны давно не используемые файлы, то FileDateTime конечно же самый идеальный вариант.

Цитата
А функции из fltk не подошли по причине недостаточно свободной лицензии этой библиотеки.


по подробнее можно, что там за ограничения?

Цитата
Также и c другими функциями, например, заменой полезнейшой FileExists, функции, определяющей, является ли объект папкой и т.д.


Здесь вообще не понял. Какие ограничения?

Цитата WQ ()
Конечно, все это не без проблем, например, оказалось, что функция декодирования utf из utf_conv.bi в fb 1.05 декодирует неправильно , пришлось писать очередной велосипед и т.п. (вроде в бета версии 1.06 исправлено)


Да ну нафиг этот utf_conv , смотрел я на это "чудо"... Если нужно преобразование кроссплатформенно, лучше сразу брать iconv. Если только под винду, тогда лучше (WideCharToMultiByte, MultiByteToWideChar). Велосипедить не вариант, если проект будет многоязычный.

Цитата
вроде в бета версии 1.06 исправлено


ну эту версию мы наверно не дождемся , быстрее солнце потухнет smile . В принципе меня устраивает и 1.05 - вполне себе стабильный релиз. После ухода dkl , даже если мышиная возня вокруг компилятора перерастет во что-то ощутимое, я еще 100 раз подумаю, стоит ли переходить на новую версию.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Понедельник, 02.10.2017, 23:09 | Сообщение # 7
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Цитата haav ()
по подробнее можно, что там за ограничения?
У FLTK лицензия LGPL -> обычно хорошо для динамической линковки с dll или So, а если линковка статическая, то все сложнее
Кроме того, в FB мы используем некую модифицированную обертку от D.J.Peters, и тут все еще сложнее
Лучше лицензии BSD и MIT, например, IUP - лицензия MIT, нет ограничений на продажу ПО, созданного на ее основе
Конечно, в случае личного использования никаких проблем нет
Цитата haav ()
Здесь вообще не понял. Какие ограничения?

Тут уже не про лицензионные ограничения, а про то, что если нужна кроссплатформенная функция работы с файлами\папками, принимающая юникод, то приходилось писать вручную (полезный опыт, на самом деле)
Вообще, конечно, надо внедрять юникод в стандартные функции. 
FileExist, насколько я понял, поглядев в исходники FB, на основе функции fopen из стандарной библиотеки C
Но у fopen есть юникодный аналог _wfopen, непонятно, почему сразу не сделали с поддержкой WString...

Цитата haav ()
Да ну нафиг этот utf_conv , смотрел я на это "чудо"... Если нужно преобразование кроссплатформенно, лучше сразу брать iconv. Если только под винду, тогда лучше (WideCharToMultiByte, MultiByteToWideChar). Велосипедить не вариант, если проект будет многоязычный.

Из Wstring в utf-8 нормально переводит, а вот обратно...
Я сначала нашел пример декодирования на C, скомпилировал его в .a, потом обнаружил что на немецком сайте уже давно лежит вот это:

Код
Dim Shared As UByte utf8d(399) = {_
_ 'The first part of the table maps bytes to character classes that
_ 'to reduce the size of the transition table and create bitmasks.
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,  9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,_
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,_
8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,  2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,_
10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,_
_ 'The second part is a transition table that maps a combination
_ 'of a state of the automaton and a character class to a state.
0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12,_
12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,_
12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,_
12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,_
12,36,12,12,12,12,12,12,12,12,12,12 }

Function decode(ByRef state As ULong,ByRef codep As ULong,ByVal b As ULong) As ULong
   Dim As ULong t = utf8d(b)
   If (state <> UTF8_ACCEPT) Then
      codep = (b And &h3fu) Or (codep Shl 6)
   Else
      codep = (&hff Shr t) And b
   EndIf
   state = utf8d(256 + state + t)
   Return state
End Function

Cейчас в программах использую только utf-8, кое-где перевожу в Wstring
 
quiet_snow_losДата: Вторник, 03.10.2017, 14:20 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
Цитата WQ ()
Поэтому для полноценной работы в Windows нужно использовать WinApi функции с Wstring и т.д.

С русскими и английскими как минимум Window9 работает нормально. Китайские проверять не полезу ))))
Этих китайцев в гробу видал happy 

Ну а если терпение позволяет, можно запариться с WSTRING и мультибайтовыми представлениями,
конечно понимаю что это возьня и бошку себе можно всю сломать, но такая опция есть.

И да DIR и пайпы ))) это же мать его за ногу просто и под линухом по идее тоже заработает, парочку
IF DEF-ов придётся пробить конечно, если универсальный код пишется, всё таки терминальные команды
чем-то да отличаются, но это не страшно.
 
haavДата: Четверг, 19.10.2017, 13:53 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата quiet_snow_los ()
Ну а если терпение позволяет, можно запариться с WSTRING и мультибайтовыми представлениями,
конечно понимаю что это возьня и бошку себе можно всю сломать, но такая опция есть.


Соглашусь с Алексеем и попробую обосновать.

Вот уже не впервый раз вижу (в том числе на других ресурсах), как ASCII относят к чему-то устаревшему и как бы ненужному, а юникод считают чуть ли не панацеей. На freebasic.su вообще автор сайта назвал использование ASCII для вывода русских символов в консоль "неправильным способом".

Давайте отталкиваться от того, что BASIC выбирают больше для того, чтобы решать какие-то задачи самым простым и доступным способом. Использование ЮНИКОДА не является простым в глазах пользователя. Почему? Ну потому, что:

1) юникод невозможно нормально использовать без указателей. Например строку юникод нельзя вернуть из функции, только указатель на нее. А зачем простому пользователю, реализующему простую алгоритмическую задачу, трахаться с выделением\переопределением\освобождением памяти? Но в первую чередь вникать в работу указателей, ведь он пришел в BASIC , а не в СИ.
2) UTF-8 еще жестче . Ее консоль винды вообще не понимает.
3) Даже если все таки новичок немного подразобрался в указателях, все равно его ждут сюрпризы при работе со строками. Юникод в лице wstring имеет разный размер на разных платформах (на винде 2 байта на символ, на линуксе 4 байта на символ), а в UTF-8 вообще темный лес , там кол-во байтов на символ варьируется. И это надо учитывать при выделении памяти, работе с коссвенной адресацией. Куда проще программисту BASIC понять, что один символ - это один байт!

Так что правильнее для пользователя? Написать строчку в начале программы shell "chcp 1251" и комфортно работать с типом STRING и с консолью , или писать строку #DEFINE UNICODE и трахаться с wstring ptr, allocate , deallocate, reallocate , всегда держать в голове длину буфера и не забывать освобождать буферы, а в случае конкатенации еще и переопределять буфер памяти ?

---------------------------------------------------
Теперь по поводу GUI. Честно скажу , что я далеко не в восторге от библиотек IUP , GTK

1) IUP:

  • Создание GUI занимает впечатляющее время (то что с помощью WINAPI я напишу за 30 минут, в IUP затрачивается как минимум 1.5 часа. А если вспомнить , что для WINAPI есть например VISG , то время создания на winapi сокращается примерно в двое. C помощью window9 вручную я затрачу не больше времени, чем при использовании VISG). Здесь конечно можно сказать что window9 только для компилятора freebasic-win32, ну и что? Разве это мешает писать программы под windows 64-bit? Да нет поддержки Linux, но как я убедился, кодеров под linux на freebasic раз-два и обчелся. В windows API,  GUI создаешь если не с удовольствием, то хотя бы нейтрально, но в IUP все время тянет проблеваться, когда видишь , что создание одного не сложного диалога занимает уже полтыщи строк, потрачено несколько часов,  а ты еще ничего по сути не сделал. Дурацкая методика создания виджетов: куча контейнеров, куча ссылок на колбаки, куча всяких косвенных атрибутов для
    установки виджетов.
    Запаришься выставлять виджеты по нужным позициям. То есть вместо того,
    чтобы заниматься алгоритмами работы программы, тратишь долгие часы на
    GUI.

  • Я использовал лишь малый объем функций  и успел наткнуться на 3-4 серьезные ошибки в библиотеке, а сколько их еще??? А уж на заброшенной IUP Linux32 и подавно больше. Все бы ничего, если бы авторы прислушивались к пользователям и выпускали патчи , но полный игнор. Зачем вообще оставляют контакты, если болт забивают?

  • Реально бесил подход, использующий строки во всем где не поподя. В некоторых ситуациях это вредит делу и производительности.

  • Из некоторых колбаков невозможно выполнить нужные операции над виджетами, приходится команды выполнять в процедуре по таймеру (то есть изобретать костыль)


Скорее всего я использовал IUP первый и последний раз. Такие пытки вредны для здоровья.

2) GTK:


  • Отвратительная документация, есть только описание функций , но не взаимосвясь в общем и целом. Так например, я создавая программу в Linux , всю башню себе перегрел, когда пытался понять как же отправить текстовый буфер данных среднего размера в буфер обмена. Дело в том, что в GTK я нашел 2 функции: одна для отправки небольших текстовых буферов (при больших она глючит), другая для отправки буферов любого размера. Но какого хрена, почему нигде не сказано, что перед отправкой нужно определенной функцией указывать диапазон буфера? Везде где есть примеры GTK об этом ни слова, сами примеры на С++ идут без этой функции и  в оф. документации тоже молчок. А у меня чуть инсульт не случился, ведь все делал как надо, но в буфере обмена никаких изменений. Потом долго насиловал поисковик и на одном не слишком распространненом форуме нашел ответ.  Или другой пример: есть функции DRAG-AND-DROP, но попробуйте найти внятное описание как их использовать , чтобы создать перетаскивание файлов в свою программу...

  • Тоже задалбывает методика создания виджетов, но все же надо признать не так жестко как в IUP.

  • Что говорить, они даже распространение бинарников не сделали доступным, все приходится брать с других сайтов. На их сайте есть ссылка на сторонний инсталлятор, но он у меня запускается и виснет. Благо Linux это не касается.
  • Названия функций часто вообще никак не ассоциируется с тем, что она делает. Им бы поучиться у автора purebasic.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Четверг, 19.10.2017, 18:09 | Сообщение # 10
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Цитата haav ()
1) юникод невозможно нормально использовать без указателей. Например строку юникод нельзя вернуть из функции, только указатель на нее. А зачем простому пользователю, реализующему простую алгоритмическую задачу, трахаться с выделением\переопределением\освобождением памяти? Но в первую чередь вникать в работу указателей, ведь он пришел в BASIC , а не в СИ.
Как по мне ничего сложного, нужно несколько правил усвоить
+ есть такое DWSTR.bi https://www.freebasic.net/forum/viewtopic.php?f=17&t=24070&hilit=DWSTR
Поддержка юникода - это де факто стандарт, современные браузеры, плееры, текстовые редакторы и т.д. не испытывают проблем с открытием файлов с юникодными символами в пути вне зависимости от систем и т.д. А, например, в Iup_fb_editor невозможно открыть файл с иероглифами в пути
Я пишу программы для пользователей из разных стран, в том числе и тех, где письменность далека от ASCII
Используя юникод и UTF-8, я точно знаю, что у них все откроется и все покажется

Цитата haav ()
2) UTF-8 еще жестче . Ее консоль винды вообще не понимает.

Всегда было непонятно при чтении имеющихся материалов о Freebasic, почему так много статеек о проблеме вывода кириллицы в консоль
Кому так нужен консольный вывод на кириллице? Пользователю программы? Есть пример такой распространенной программы?
А если со стороны разработчика, то хватит и латиницы в случае каких-то служебных сообщений

Цитата haav ()
3) Даже если все таки новичок немного подразобрался в указателях, все равно его ждут сюрпризы при работе со строками. Юникод в лице wstring имеет разный размер на разных платформах (на винде 2 байта на символ, на линуксе 4 байта на символ), а в UTF-8 вообще темный лес , там кол-во байтов на символ варьируется. И это надо учитывать при выделении памяти, работе с коссвенной адресацией. Куда проще программисту BASIC понять, что один символ - это один байт!Так что правильнее для пользователя? Написать строчку в начале программы shell "chcp 1251" и комфортно работать с типом STRING и с консолью , или писать строку #DEFINE UNICODE и трахаться с wstring ptr, allocate , deallocate, reallocate , всегда держать в голове длину буфера и не забывать освобождать буферы, а в случае конкатенации еще и переопределять буфер памяти ?

С UTF-8 проблем меньше всего, в FB можно работать как с обычной строкой. Строка туда, строка сюда, в winapi переводится в wstring.

Я конечно долго разбирался, писал велосипеды и т.д., но это из-за моих установок по лицензированию
А сейчас можно брать статичную FLTK, в fltk-c.bi выставить только работу с файлами и строками, и получать +50 килобайт и все основные юникодные функции
Правда, вряд ли кто-то этим пользуется...

Цитата haav ()
Теперь по поводу GUI. Честно скажу , что я далеко не в восторге от библиотек IUP , GTK

Вариантов у нас не много)

Цитата haav ()
Запаришься выставлять виджеты по нужным позициям. То есть вместо того,чтобы заниматься алгоритмами работы программы, тратишь долгие часы на
GUI.
Если приноровиться, так IUP все сама расставит
Я еще беру библиотеку CD и рисую элементы вручную, а рисовать я не умею, времени уходит очень много(

Цитата haav ()
Я использовал лишь малый объем функций и успел наткнуться на 3-4 серьезные ошибки в библиотеке, а сколько их еще??? А уж на заброшенной IUP Linux32 и подавно больше. Все бы ничего, если бы авторы прислушивались к пользователям и выпускали патчи , но полный игнор. Зачем вообще оставляют контакты, если болт забивают?
Вроде получается что IUP делает 1 человек (+ IM и CD), и неудивительно, что техподдержка никакая.
Я ему написал 1 раз, и он ответил, я даже удивился
Хорошо, что вообще что-то выпускает, и лицензия либеральная
А IUP для linux32 заброшен судя повсему из-за того, что прекращен выпуск Ubuntu-32
Не знаю, возможно ли самостоятельно скомпилировать новые версии под linux32

И
Цитата haav ()
Давайте отталкиваться от того, что BASIC выбирают больше для того, чтобы решать какие-то задачи самым простым и доступным способом.
Если FB так позиционировать, неудивительно, что на нем почти никто не пишет

Мое имхо о FB, надеюсь, никого не обидит:

Достоверно ведь неизвестно, зачем люди берут FB и начинают с ним разбираться, какие у них цели при этом...
Вот в соседней теме http://freebasic.ucoz.com/forum/4-399-1
человек спрашивал про вывод текста в графическое окно - даем ему пример, вывод шрифта из bmp и т.д.
Кириллица не выводится, потом выводится и т.п.
Это все конечно хорошо, но далее уже тема http://freebasic.ucoz.com/forum/3-401-1
человек переходит к созданию GUI
И мы видим, что все эти примеры с загрузкой bmp, графическим окном и т.д.
были, скажем так, лишними (я там это сразу написал, кстати)
Как этот опыт поможет при работе с Window9 и другими обертками? Ну, можно сказать, общая работа с языком, операторами там, то, сё...
Но этот опыт можно получить и без обращения к функциям графического окна

К чему я это все - советовать новичкам использование графических функций Screen и т.д. в их текущем состоянии не перспективно
Новичек приходит, ему хочется красоты и наглядности, начинает в этих функциях ковыряться, получая, возможно, унылое впечатление о примитивности FB - этого нет, это сложно сделать и т.д.
К примеру, нужен шрифт - возьми файл bmp, загрузи. Другой шрифт? Возьми другой файл и снова загрузи и т.д. Где эти файлы брать, что, как, малопонятно... И это во времена векторных шрифтов со сглаживанием и наличия в стандартном архиве FB примеров работы с ними, не говоря уж о GUI библиотеках... По сложности разница невелика, а перспективы разные...

Я сразу скажу, мало знаю о истории бейсика и QB в частности, наследником которых является FB, если это графическое окно от них перешло, то все это зря
На оф форуме, конечно, постоянно выкладывают виртуозные примеры использования графического окна, всякие демки на основе математики и т.д.
Или вот сейчас вижу пример файлового менеджера в граф окне...
Это напоминает постройку дома в современных условиях при помощи одного топора - да, это круто, вызывает восхищение, но почти никто так не делает и никому это не нужно, кроме автора.

Притом, что везде, где бы я ни советовал Freebasic как язык программирования, давая ссылку на учебник от haav-а, все соглашались, что именно FB лучше других предложений (понятно, что для новичка выбор очевиден - огромные тома по питону или C против лаконичного и четкого учебника с местного портала). Но именно создание GUI указывали как слабое место - начинаешь разбираться и спотыкаешься об Screen и прочее. Один человек, например, хвалил FB, создав консольную программу для своей задачи, но когда ему потребовалось добавить интерфейс, перешел на freepascal - мол, там проще, есть редактор форм, "накидал кнопок на форму и все". При том, что элементов у него, думаю, было немного и никаких проблем в случае использования Window9\IUP и т.д. не возникло.

Что мы видим? Большинству нужен легко создаваемый графический интерфейс
Нужно в представлении языка отодвинуть Screen подальше и выдвинуть, допустим, ту же Window9 или еще что
А еще лучше написать статью про имеющиеся библиотеки функций GUI, разобрав их минусы-плюсы и обозначив возможное направление использования
Все это разместить в той же википедии в статье о FB (именно я там добавил раздел со списком имеющихся библиотек)
 
haavДата: Четверг, 19.10.2017, 20:05 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата WQ ()
Как по мне ничего сложного, нужно несколько правил усвоить

Это ты судишь со своей колокольни, уже пройдя свой тернистый путь. Я хорошо помню какие затыки были поначалу у меня с указателями и скажу что для первобранцев это тот еще адов коктейль.

Цитата WQ ()
А, например, в Iup_fb_editor невозможно открыть файл с иероглифами в пути

На твоей винде с русской локализацией? Конечно будут проблемы. Однако ты забываешь, что на другой локализации есть свои кодовые страницы ASCII и файлы с иероглифами там прекрасно открываются. Например у китайцев CP936 , у японцев CP932 , у корейцев CP949, у евреев 1255, у турков 1254 и т.д. Не веришь? Тогда как FbEdit (не поддерживающий юникод) получил китайскую локализацию? Или как японец Макото использовал мою библиотеку, причем у него были фотки, где откровенно одни иероглифы при работе с файловой функцией OpenFileRequester ? Так что можно и без юникода создавать программы, которые будут работать на других концах света. И не забывай, что винда выпускается далеко не на всех языках, возможно как раз ограничена списком кодовых страниц ASCII.

Цитата WQ ()
Всегда было непонятно при чтении имеющихся материалов о Freebasic, почему так много статеек о проблеме вывода кириллицы в консольКому так нужен консольный вывод на кириллице? Пользователю программы? Есть пример такой распространенной программы?
А если со стороны разработчика, то хватит и латиницы в случае каких-то служебных сообщений

Я без понятия, но ты сам видел сколько топиков и сообщений оставлено по данной теме. Мне так же не нужен русский в консоли, однако консоль как средство отладки нужна

Цитата WQ ()
Что мы видим? Большинству нужен легко создаваемый графический интерфейс


Больше скажу, большинству нужен инструмент с одной кнопкой, который со словами трах-ти-би-дох создает любую программу, которую сразу можно выгодно продать. Я вспоминаю время, когда люди создавали игры (например для Dendy) , имея под рукой примитивный ПК без компиляторов и отладчиков. Как такое может быть?  Да они сами писали свои и отладчики и компиляторы для того, чтобы написать игру. А карту рисовали на бумаге и заносили пиксели , смотря на рисунок. Вот это были программисты! Сейчас таких людей не делают...


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
quiet_snow_losДата: Вторник, 24.10.2017, 22:39 | Сообщение # 12
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
Цитата haav ()
там кол-во байтов на символ варьируется

Да да всё так, вляпывался не раз, лечил через функции винды, причём всегда по-разному, по чужим
исходникам, почти методом научного тыка. И через Write смотрел чтобы лишнего не было...
А фигли, только так. Потому что бывает бесполезно пытаться понять что и куда конвертируется.

Цитата haav ()
Куда проще программисту BASIC понять, что один символ - это один байт!

И окинуть взором сразу всю таблицу. Плюс псевдографика. Обожаю оформлять ею код программы,
даже и не вспомню как давно уже этого не делал, помню только, что это кайф. В современных IDE
на это плотно положен хер, какие-то жалкие нижние подчёркивания или попытки найти длинную
чёрточку в Unicode символах.

Цитата haav ()
Больше скажу, большинству нужен инструмент с одной кнопкой, который со словами трах-ти-би-дох создает любую программу, которую сразу можно выгодно продать.

К счастью Microsoft нанимает индусов на разработку инструментов для программистов и хомякам
приходится повышать свою квалификацию в алгоритмизации, дабы преодолеть всё это безобразие.
Даже себя чувствую как-то вольготно в такой ситуации, ну да время не стоит на месте, конкуренция
растёт, но вот, ахах, как-то нет страха))) Единственное, пожалуй что напрягает, железячники
слишком сильно крысят свои API и слишком сильно усложняют те вещи, которые должны быть
элементарнейшими. Например до сих пор не вижу унифицированного поддерживаемого ассемблера
для видеокарт, плюс там какие-то адовые заморочи с линкерами, и всё это только на си.
Столько мощей пропадает, эх. Это делается намеренно, для того чтобы рос "рынок обучения" этим
фичам, на деле же там все плюются, потому что гемор невероятного масштаба.

Цитата haav ()
Я хорошо помню какие затыки были поначалу у меня с указателями

У меня до сих пор завтыки с указателями. Работать "руками", херачить с нуля архитектуры программ
в 3GL это адовое месево.

Добавлено (24.10.2017, 22:39)
---------------------------------------------

Цитата WQ ()
К чему я это все - советовать новичкам использование графических функций Screen и т.д. в их текущем состоянии не перспективно

Не согласен. До сих пор пользуюсь этим функционалом, он скажу прямо - офигенен. Потому что
когда поморочился со спрайтами PB, поморочился с OpenGL-ом на FB, то понял, что этот функционал
реально тащит. Да он работает не быстро скажем так, звёзд с неба не хватает. Но он мать его
работает, ты написал вывод один раз, - он работает. Хлеба не просит. С другими же штуками
постоянно какой-то геморрой, то что-то не работает, то что-то смещается и гадит, то что-то не
загружается или сбрасывает своё состояние. Для больших проектов встроенная графика вообще
идеальна в ней нечему просто баговать.

Window9 же это совсем другое, но более того можно пользоваться и Window9 при этом выводить
графику в окно(есть такая опция у FBGfx).

Цитата WQ ()
интерфейс, перешел на freepascal - мол, там проще, есть редактор форм, "накидал кнопок на форму и все"

На его месте перешёл бы на VisualBasic. Или на худой конец на PureBasic. Но там есть свои нюансы.
Паскаль видимо был выбран как средство быстрой сборки, ибо его система юнитов себя отлично
зарекомендовала, когда надо что-то быстро склепать, а с нуля писать нет желания, времени и сил.
Подход хомячий, при быстром заработке только так.

Цитата WQ ()
При том, что элементов у него, думаю, было немного и никаких проблем в случае использования Window9

Поверь у него были бы проблемы в использовании Window9. Просто поверь. ))) Для этого нужно пройти ад.
При этом скилл достигается плотным трахопопингом при тестировании своих программ на разных виндах.
Трахопопинга настолько много, что можно написать толстую книгу. Новички, разумеется могут использовать
window9 но вряд-ли они раскроют потенциал этой библиотеки. Нужно понимать при каких условиях она
создавалась и с какой целью. Профит разумеется есть, лично мне эта библа нравится, часть задач по виндовым
оконным приложениям она решает просто великолепно и лично мне этого хватает, потому как писать WinAPI
код с нуля - я просто охерею.

Цитата WQ ()
Нужно в представлении языка отодвинуть Screen подальше и выдвинуть, допустим, ту же Window9 или еще что

Это не самая хорошая идея, новички не полезут в WinAPI(и сам не особо люблю туда лазить), без которого
на Window9 будет сложно достигнуть целевой задумки. Более того SCREEN не продвигается в FB в принципе никак.
Каждый кодит на том, на чём желает. Даже в PB с его великолепными 1400 функциями, постоянно требуется что-то
делать через WinAPI.
И кстати принципиально не выкладываю различные приёмы работы с Window9, чтобы хомяки внезапно не
чувствовали себя богами, нужно иногда понимать ущербность своего мозга чтобы был прогресс, не всё коту
масленица и т.п.. Слишком сейчас много стало людей, которые в корне не разбираются в программировании
но сразу хотят писать "коммерческие программы и быть успешными". Сам в первую очередь за равноправие, а
халявы в жизни нет, каждому желаю это осознать. И Стас красавчик, он как раз создал такой инструмент, который
одновременно и помогает и мотивирует набирать опыт, работать бошкой, а не деградировать на готовеньком.
 
Форум » Freebasic » Вопросы по языку FreeBasic » получение даты файлов (в зависимости от даты стирает эти файлы в папке)
  • Страница 1 из 1
  • 1
Поиск: