Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 19:14

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 16:09 
Не в сети

Зарегистрирован: Чт апр 03, 2014 20:29
Сообщения: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Привет всем))
только учусь программировать на Форте и никак не могу найти слово записи в файл. Подскажите пожалуйста)
ведь считать из файла в стек - INCLUDED, а наоборот как?
у меня spf)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 16:42 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Код:
: FILE ( addr u -- addr1 u1 )
    { \ f mem }
    R/O OPEN-FILE-SHARED IF DROP S" " EXIT THEN
     -> f
    f FILE-SIZE THROW D>S DUP
    CELL+ CELL+ ALLOCATE THROW -> mem
    mem SWAP f READ-FILE THROW
    f CLOSE-FILE THROW
    mem SWAP
;

: FWRITE   \ ( a u a-filename u-filename -- )
    W/O CREATE-FILE-SHARED IF DROP 2DROP EXIT THEN
    >R
    R@ WRITE-FILE DROP
    R> CLOSE-FILE DROP
;

: >EOF ( h --)
    >R
    R@ FILE-SIZE 0=
    IF R@ REPOSITION-FILE DROP
    ELSE 2DROP THEN
    RDROP
;

: OPEN/CREATE-FILE ( a u mode -- handle ior)
    >R
    2DUP R@ OPEN-FILE-SHARED
    IF DROP
       R@ CREATE-FILE-SHARED
    ELSE
        >R 2DROP R> 0
    THEN
    RDROP
;

: FAPPEND ( a u a-filename u-filename -- )
    R/W OPEN/CREATE-FILE
    IF DROP 2DROP EXIT THEN
    >R
    R@ >EOF
    R@ WRITE-FILE DROP
    R> CLOSE-FILE DROP
;

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 17:41 
И опять неправильный ответ на неправильный вопрос.

Правильный вопрос: почему INCLUDED и работа с файлами - это две большие разницы?

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


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 17:44 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Алиска писал(а):
Привет всем))
только учусь программировать на Форте и никак не могу найти слово записи в файл. Подскажите пожалуйста)
ведь считать из файла в стек - INCLUDED, а наоборот как?
у меня spf)

Часть вопросов снимает чтение Стандарт ANSI на Форт (Слова доступа к файлу)
а также искодников Форт системы (для SPF4 каталог src) и поиск по директории Devel (для SPF4) по "вариантам" применения искомого слова :)
\ Форт код в подключаемом файле может сам обработать текст своего файла
\ Пример подобного решения

P.S. Пример VoidVolker не удачен т.к. видны не стандартные Форт слова и не указано для какой Форт системы сделан данный код
Для начального изучения может оказаться чем то полезнее начать знакомство с Форт системами на примере Win32Forth.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:11 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
gudleifr писал(а):
Правильный вопрос: почему INCLUDED и работа с файлами - это две большие разницы?
Да ладно, правда что ли?
gudleifr писал(а):
Потому, что нормальные языки программирования не имеют средств работы с файлами.
Да? Это какие такие нормальные ЯП? А как же работают все современные программы с ФС, если в "нормальных ЯП" нет средств для работы с ФС. А форт, значит, не нормальный, так?
gudleifr писал(а):
Почему? Потому что об этом заботятся нормальные операционные системы (ОС).
Да? А что есть "нормальная ОС"? А винда - одна из самых популярных ОС, значит, не является нормальной, так?

KPG писал(а):
P.S. Пример VoidVolker не удачен т.к. видны не стандартные Форт слова и не указано для какой Форт системы сделан данный код
Алиска писал(а):
у меня spf)
А вот давайте не будем фантазировать, а будем внимательно читать вопрос, ага?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Последний раз редактировалось VoidVolker Вс апр 06, 2014 19:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:11 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Алиска писал(а):
ведь считать из файла в стек - INCLUDED, а наоборот как?

только не в стек, а просто интерпретировать указанный файл, в СПФе, если не ошибаюсь можно просто имя файла набрать без использования INCLUDED

Для того, чтобы что-то просто прочесть в память, и, наоборот, сохранить что-то в файл, необходимо выделить место под буфер и использовать функции OPEN-FILE READ-FILE CLOSE-FILE WRITE-FILE и подобные. Найти их описание можно в исходниках СПФ-а.

В следующий раз, пожалуйста, указывайте версию форт-системы (могут быть отличия)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:33 
VoidVolker писал(а):
Да ладно, правда что ли?
Если не ошибаюсь, Вы уже не первый раз пишете "да ладно" на очевидные вещи...
Надеюсь, Вы еще раз прочтете написанное и поймете, что написали полную лажу.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Код:
0x100 CONSTANT buf#  \ задать размер буфера файла

CREATE buffer buf# ALLOT \ создать буфер заданного размера (в статической области памяти)

S" file.name" W/O OPEN-FILE THROW VALUE fId  \ открыть файл на запись

buffer buf# fId WRITE-FILE THROW  \ сохранить содержимое буфера в файл

fId CLOSE-FILE THROW


да, file.name уже должен существовать, иначен надо CREATE-FILE

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:40 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
gudleifr писал(а):
Если не ошибаюсь, Вы уже не первый раз пишете "да ладно" на очевидные вещи...

Это типа сарказм. Разве не очевидно? Какой смысл разводить флуд на пустом месте? Человек спросил - я ответил. Причем это вполне реальный код, который, представьте себе, РАБОТАЕТ. И даже в настоящих программах. Все чудесатее и чудноватее, не так ли?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:45 
VoidVolker писал(а):
Причем это вполне реальный код, который, представьте себе, РАБОТАЕТ.

За меня уже сказал мэтр. Ч.Мур:
Цитата:
Также, меня волнует общее пренебрежение некоторыми существенными проблемами. Это - безразличие к качеству, вера в то, что работающая программа хороша уже сама по себе. Я убежден, что эта вера неуместна.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 19:47 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
VoidVolker писал(а):
Это типа сарказм.

бесполезно, лучше не корми троля
(еще пара сообщений личного характера, все снесу во флуд)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 20:12 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
VoidVolker писал(а):
KPG писал(а):
P.S. Пример VoidVolker не удачен т.к. видны не стандартные Форт слова и не указано для какой Форт системы сделан данный код
Алиска писал(а):
у меня spf)
А вот давайте не будем фантазировать, а будем внимательно читать вопрос, ага?

Фнтазировать не будем.
Возможно ещё необходимо указать используемую ОС (т.к OPEN-FILE-SHARED точно нет в стандарте 94г. слов Форта).
-> тоже не явное слово и др. :shuffle;

P.S. Мелочи для знащего пользователя Форт, а новичка могут поставить в тупик. Например как SPF для nncron тоже имеет отличия от SPF4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 20:22 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
KPG писал(а):
-> тоже не явное слово и др.
Синоним TO. Насколько я помню, это все вообще мной было как-то надергано из девела. Так и использую.
KPG писал(а):
Возможно ещё необходимо указать используемую ОС
Винда.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 21:09 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Алиска писал(а):
Привет всем))
только учусь программировать на Форте и никак не могу найти слово записи в файл. Подскажите пожалуйста)
ведь считать из файла в стек - INCLUDED, а наоборот как?
у меня spf)

Возможно Вам лучше обратить внимание на http://www.nncron.ru - "почти" тот-же spf,но есть документация + более вменяемое сообщество (не будут умничать, а постараются помочь) + более реальные применения под Винду (к сожалению нет аналогичного продукта для Linux :( )
Код:
0 VALUE buf \ указатель на буфер
0 VALUE fh \ Дескриптор файла

: main
1024 ALLOCATE THROW TO buf \ Создаем буфер
S" filaname.ext" R/O OPEN-FILE THROW TO fh \ Открываем файл для чтения
buf 1024 fh READ-FILE THROW \ читаем 1 Кб из файла
\ .... \ Тут размещаем свой код
fh CLOSE-FILE THROW \ закрываем файл
CR buf 1024 DUMP \ выводим дамп
buf FREE THROW \освобождаем буфер
;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Запись в файл
СообщениеДобавлено: Вс апр 06, 2014 21:33 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Ilya писал(а):
Возможно Вам лучше обратить внимание на http://www.nncron.ru

http://www.nncron.ru/download/nncron193b13.exe - последняя бета, с поддержкой семерки и восьмерки. Ну, настолько, насколько это возможно, конечно )

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB