2016-05-03 8 views
5

Sto provando a scrivere una semplice applicazione di chat in Rebol basata su un singolo file di testo. Quale sarebbe il modo migliore per leggere quel file "in tempo reale"? In questo momento li ho lavorare con questo:Come leggere il file in tempo reale per l'applicazione di chat?

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 
     ] 
    ] 
] 

Il campo di testo viene aggiornato ogni secondo con il contenuto del file. Funziona, anche con più utenti, ma l'intero file viene letto ogni secondo per ogni utente. C'è un modo migliore per fare questo genere di cose?

+1

Perché non controllare per vedere se il file è stato modificato prima di leggerlo? –

risposta

2

Dai un'occhiata alla funzione info?. Si può fare qualcosa di simile:

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 
      ] 
     ] 
    ] 
] 

Ma è necessario fare attenzione se si scrivere sul file da applicazioni multiple.

Problemi correlati