2015-06-22 62 views
1

日記函數在我的應用程序中很適合用於記錄目的,但不是在文本文件頂部出現的最新消息(this是我需要的方式)附加到舊的消息。Diary Matlab ::在文本文件頂部的最新消息,而不是追加到文件底部

任何方法預先追加的消息,而不是附加到文本文件或變通辦法中的舊信息?

+1

文本文件都寫在一個連續的方式,在頂部插入一些需要的全部內容被移動。這不被'日記'所支持,即使你會找到某種方法來破解它,它會非常緩慢。你能解釋一下目的嗎?也許有更好的方法來實現你想要的。可以想象一個自動滾動的文本編輯器,所以你總能看到最近的數據會達到你想要的? – Daniel

+0

在解析/分組/分析文本數據後,我正在讀取'diary'生成的文本文件,如果日誌具有連續數據,則我的GUI將在底部顯示最新消息,而不是填充在頂部。它是應用程序日誌的快速解決方案。有關這方面的任何指導? – miprakas

+0

您的用戶界面是否也使用m代碼或其他編程語言編寫? – Daniel

回答

0

翻轉順序應該在用戶界面中完成,這裏不涉及硬盤交互,這將使其更快。

在某些時候,你需要打開日誌文件和初始化數據結構:

fid = fopen('fgetl.m'); 
lines = {} 

現在只讀新線。重複這個循環:

tline = fgetl(fid); 
new_line=false; 
while ischar(tline) 
    lines{end+1} = fgetl(fid); 
    new_line=true 
end 

要顯示我建議只顯示最後n(選擇值)在UI線,以避免減慢當日志增長:

if new_line 
    reversed=lines(end:-1:max(numel(lines)-n+1,1)); 
    %update your UI here with the text in reversed 
end 

最後,在你的程序的最後,你需要關閉該文件:

fclose(fid); 
相關問題