Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Oberon
Перезагрузить страницу Чтение и запись файлов в BlackBox
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Бобо Бобо вне форума
Member
 
Сообщений: 387
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.12.2011
По умолчанию Чтение и запись файлов в BlackBox - 19.12.2011, 09:31

В прилагаемых справках, не могу найти ничего о чтении и записи "обычных" файлов. То, что работает в Oberon-2 XDS, в BlackBox не работает. Справочная система - отвратительная, больше похожа на глупую рекламу, и нет материалов в сети: большинство ссылок устарело. И ещё один вопрос - вызов функций WinApi, о чём тоже можно только гадать по справкам.

[Ещё менее понятно - зачем создавать такую тупую систему ]
Ответить с цитированием
  (#2 (permalink)) Старый
Romiras Romiras вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.01.2012
По умолчанию 06.01.2012, 05:07

Система BlackBox, наоборот, собрана очень аккуратно и с умом. И, несмотря на то, что BlackBox необычен своими подходами, те, кто поймёт его преимущества, будет получать от него кайф.
У меня первое время при изучении BlackBox была "ломка", лишь спустя месяц я втянулся и теперь на те же вещи смотрю совершенно иначе. Сам я перешёл с Delphi. Поняв принципы работы BlackBox, вы сможете с большой эффективностью создавать различное ПО.

Примеры ПО можно посмотреть в коллекции Цинна: Component Pascal Collection: Component Pascal Collection (сервера и БД, научные, hardware, образовательные, мультимедиа и прочие).
И ещё Scientific Programming Without a Sting (слайд-презентация от Wojtek Skulski).

Цитата:
То, что работает в Oberon-2 XDS, в BlackBox не работает.
1. Компонентный Паскаль в BlackBox (бывший Oberon/F) является расширением языка Oberon-2 и у него есть некоторые отличия, среди которых и отличия в базовых типах (которые стали совместимыми с Java).
2. Различная реализация компиляторов. А отличий не так уж много.

Справочная система - не отвратительная, а просто непривычная для новичков. Или вы хотели нечто подобное CHM? Справка в ББ - предметно-ориентированная. Всё находится исходя из того что требуется найти.

Цитата:
И ещё один вопрос - вызов функций WinApi, о чём тоже можно только гадать по справкам.
Гадать не нужно. В справке всё есть. Почитайте Platform-Specific Issues. После того, как вы прочитаете, вы поймёте, что в Обероне/КП импорт сторонних модулей и билиотек делается гораздо проще, чем в остальных языках программирования.
Если вкратце: в ББ имеется готовый интерфейс доступа к Windows API в модуле WinApi (но не 100% полный). Импортируйте его и обращайтесь к его интерфейсу.
Посмотрите дополнительные примеры в подсистеме Host (собственно, реализация платформы для Windows).
Цитата:
нет материалов в сети
Они есть, но их мало и трудно найти. Это правда. Но на ресурсе www.oberoncore.ru/ вы сможете найти дополнительную информацию и документацию в том числе.

Если вам удобнее читать на русском языке, чем на английском, то рекомендую скачать школьную сборку из проекта Информатика21. В ней полно примеров как для школьников, так и для преподавателей. Найните с простых примеров и продвигайтесь дальше. Не пожалеете.

Обычные файлы - это какие? Текстовые?
Пример для текстовых файлов можно посмотреть в модуле ObxAscii через меню Obx.

Кроме этого, вот ещё:
Pascal Код:
MODULE TestAscii;
         IMPORT ObxAscii, Out;

        CONST
                 lf = 0DX;

        PROCEDURE Test*;
         VAR
                 t : ObxAscii.Text;
                 ch : CHAR;
         BEGIN
                 t := ObxAscii.Open(NIL, "Obx/Mod/Test.txt");
                 WHILE ~ObxAscii.Eot(t) DO;
                         ObxAscii.ReadChar(t, ch);
                         IF ch = lf THEN
                                 Out.Ln();
                         ELSE
                                 Out.Char(ch);
                         END;
                 END;
         END Test;
 END TestAscii.
источник
"Бинарные" файлы нужно считывать с помощью модуля Files. Для этого прочтите документацию. Вкратце: методы Internalize/Externalize, в которых описывается чтение/запись произвольной структуры данных.

Последний совет: не пробуйте копировать типичные-мейнстрим подходы в построении ПО в Блэкбоксе. Их строят просто по-другому. К примеру, в ББ нет необходимости компилировать в EXE, если вы только не собрались распространять ваше ПО на другие компьютеры без установленного Блэкбокса.

Последний раз редактировалось Romiras; 06.01.2012 в 05:16 Причина: дополнение
Ответить с цитированием
  (#3 (permalink)) Старый
Бобо Бобо вне форума
Member
 
Сообщений: 387
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.12.2011
По умолчанию 14.01.2012, 09:46

Romiras, ОК!

Дело - не в формате файла справки, а в том, как там материал подобран. Так же всё непривычно, как и в самом языке. Обычно, например, есть раздел "функции ввода-вывода", в котором перечислены функции с пояснениями. Тут - ничего подобного. И так - во всём... Зачем так делать? Точно так же: зачем разносить в разные библиотеки функции для работы с разными типами файлов?
Ответить с цитированием
  (#4 (permalink)) Старый
Romiras Romiras вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.01.2012
По умолчанию 16.01.2012, 19:54

"С наскоку" пользоваться не сможете. BlackBox отличается от других сред разработки тем, что здесь всё начинается с чтения документации.
Что касается программирования на Компонентном Паскале в BlackBox, то необходимо:
* Изучить основы языка КП (благо, язык проще в обучении, чем Паскаль) или прочесть про отличия от Паскаля, если изучал его ранее.
* Изучить основы работы в среде разработки BlackBox с помощью прилагаемой документации. В модифицированных сборках от проекта Информатика 21 есть перевод документации на русский язык.

Если привычна командная строка, то есть сборки Gardens Point Component Pascal для .NET, Java. [ gpcp.codeplex.com ]

Не исключено, что проще будет начинать с компилятора XDS (Оберон-2/Модула-2), так этот компилятор имеет как среду разработки, так и консольный компилятор. Можно даже пользоваться NotePad++ с ObIDE [ ww w. excelsior-usa.com/forum/topic/1361-obide-oberon-2-ide-plugin-for-notepad/ ]
Документация по XDS имеется в сети [ ww w. excelsior-usa.com/doc/xds/xdslib.html ]. Там с файлами не так мудрёно как в ББ.

Что касается сообщества Оберон, то наибольшую поддержку можно получить по языкам КП и Оберон-2.
Если нужно строить прикладное ПО, что нужно смотреть в сторону КП. Если же системное ПО, то XDS, OO2C, Astrobe.
Ответить с цитированием
  (#5 (permalink)) Старый
Бобо Бобо вне форума
Member
 
Сообщений: 387
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.12.2011
По умолчанию 11.08.2012, 02:35

Ничего не могу найти, до сих пор. Проблема - не со средой, и не с языком, а с конкретными функциями: нет ни списков, ни описаний. Недавно опробовала Oxford Oberon-2. Он тоже отличается от XDS, но нет таких проблем, как с BlackBox. Потратила на него около получаса. И то - чтобы выяснить, в каких библиотеках находятся нужные функции...

Ваш пример можно использовать только для чтения символов из файла. Как открыть для записи - неизвестно, и найти нельзя...

Pascal Код:
t := ObxAscii.Open(NIL, "C:\Test.txt");
ObxAscii.WriteString(t,s);

Ошибка: "NIL dereference (read)".

Вместо NIL должен быть некий "локатор", и чтобы узнать, что это такое, надо читать кучу невнятных рассуждений про недоучек-самоучек, про их чудо-педагогику, а ещё - про рейдеров, осведомителей, охранников и всякие ловушки. Будто шизофреники писали! У них даже модули - "смотрены"...

Кстати, в Oxford Oberon ушли от лишней сложности к нормальному:

Pascal Код:
f1:=Files.Open('c:\020812.txt','w');

PS: Нашла справку...
И тоже - пришлось догадываться, что файл сперва записывается в никуда, а после записи "регистрируется" с именем.

Последний раз редактировалось Бобо; 11.08.2012 в 04:19
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись из файла annnytka .NET 4 17.12.2010 14:24
MPI чтение и запись в массив данных Chummy С/С++ 5 05.10.2010 00:01
Чтение и запись в файл qqeeaaddzzcc_the_same C++ Builder 1 16.10.2009 00:20
Чтение и запись AVI IL_Agent Visual C++ 5 03.10.2006 01:49
Чтение и запись графического файла imported_pers Visual C++ 4 22.04.2006 21:36
Чтение и запись в LPT порт под XP alex0026 Delphi 1 19.12.2005 13:09
Чтение и запись binary файла yar_2d С/С++ 1 24.10.2005 14:50
Как открыть поток на чтение и запись, причем запись в конец файла Borro С/С++ 6 16.03.2005 14:47
Запись и чтение реестра Начинающий Delphi 19 21.12.2004 02:36
Чтение и запись текста на JavaScript Kot DHTML, JavaScript, VBScript 0 09.12.2004 14:35
Запись - чтение из реестра Elderb C++ Builder 1 10.03.2004 11:29
Чтение массива быстрее, чем запись Помор С/С++ 5 16.02.2004 20:14



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов