Как читать файл в реальном времени для чата?

Я пытаюсь написать простое приложение для чата в Rebol, основанное на одном текстовом файле. Как лучше всего читать этот файл в режиме реального времени? Прямо сейчас у меня это работает с этим:

    t1: text 600x300 wrap green black font-name font-fixed  rate 1 feel[
    engage: func [face action event][
        if action = 'time [
            face/text: read chatText
            show face
        ] 
    ] 
] 

Текстовое поле обновляется каждую секунду с содержанием файла. Это работает, даже с несколькими пользователями, но весь файл читается каждую секунду для каждого пользователя. Есть ли лучший способ сделать это?

1 ответ

Посмотрите на info? функция. Вы можете сделать что-то вроде этого:

REBOL []
chat-file: %file.txt
file-info: info? chat-file
update-date: file-info/date

view layout [
    t1: text read chat-file 600x300 wrap green black font-name font-fixed  rate 1 feel [
        engage: func [face action event] [
            if all [
                action = 'time
                file-info: info? chat-file
                update-date < file-info/date
            ] [
                update-date: file-info/date
                face/text: read chat-file
                show face
            ]
        ]
    ]
]

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

Другие вопросы по тегам