2016-05-03 8 views
5

Ich versuche, eine einfache Chat-Anwendung in Rebol zu schreiben, die auf einer einzigen Textdatei basiert. Was wäre der beste Weg, um diese Datei "Echtzeit" zu lesen? Gerade jetzt ich habe Arbeit es mit diesem:Wie lies Datei Echtzeit für Chat-Anwendung?

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

Das Textfeld in jeder Sekunde mit dem Inhalt der Datei aktualisiert wird. Das funktioniert auch mit mehreren Benutzern, aber die ganze Datei wird jede Sekunde für jeden Benutzer gelesen. Gibt es einen besseren Weg, so etwas zu tun?

+1

Warum nicht einfach prüfen, ob die Datei vor dem Lesen geändert wurde? –

Antwort

2

Schauen Sie auf info? Funktion. Sie können etwas tun:

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

Aber Sie müssen vorsichtig sein, wenn Sie die Datei von mehreren Anwendungen schreiben.

Verwandte Themen