1. 程式人生 > >紅孩兒編輯器模組設計7

紅孩兒編輯器模組設計7

紅孩兒編輯器模組設計7

首次明確一下如下的相關的概念
螢幕 與螢幕的可見區,快取與檔案

螢幕與螢幕的可見區的關係,就好像是拿著放大鏡看地圖。
地圖很大,用放大鏡來移動著,看一個部分。

轉換公式是
螢幕的可見區的相對的行號+左上角的頂點在螢幕中的行數=螢幕中的絕對的行號
螢幕的可見區的相對的列號+左上角的頂點在螢幕中的列數=螢幕中的絕對的列號

螢幕與快取都可以看成是兩維的陣列,如果沒有自動換行,
它們一行與一行一一對應。如果是有自動換行,它的對應關係
在模組設計3中有比較詳細的介紹 ,這裡不寫了。

螢幕與快取的列號的對應邏輯描述如下:
分成如下的四種情況:
1  顯示行號,自動換行
    快取中的列號=螢幕上的可見區的相對的列號-行號佔用的字元數
                         +(快取中該行的序列號-1)*(單行的字元總數 -行號佔用的字元數)

2  顯示行號,不自動換行
      快取中的列號=螢幕上的絕對的列號 -行號佔用的字元數

3  不顯示行號,自動換行
   快取中的列號=螢幕上的可見區的相對的列號+(快取中該行的序列號-1)*單行的字元總數  


4  不顯示行號,不自動換行
       快取中的列號=螢幕上的絕對的列號 

快取與檔案 是二維與一維的關係,把快取寫入檔案是序列化的操作過程,
把檔案讀入快取是反序列化的操作過程。序列化與反序列化的邏輯,
在下一次文件中詳細描述。