MK

Monday, 26 March, 2007

Sequential file updating

Filed under: CIT Module A,CIT2008 — MK @ 11:38

這留言是給各位中四同學的。

Exercise 11-8 很難吧?其實只算是煩吧!

大家請到 assessment →「S4 CIT – Module A (CE2008 )」下載區→「Chapter 11: Text files」那兒下載一個 Quiz 3,起碼給那些對 Exercise 11-8 無甚概念的同學可以來一個惡補。

試試看着書,依着指示,填充吧,起碼可以做到「Amend」這個 procedure︰

Step 1: 很自然要問 user 輸入要尋找的 Member ID 吧?沒可能沒有「readln(target);」吧?

Step 1 和 Step 2 之間: 還有什麼好做?當然是一堆 assign, reset, assign, rewrite 啦!

Step 2: 以下有一個建議方法,但這不是唯一方法。留意是使用了 sequential search,以及把 unmatched 的抄到新檔案處

found := false;
repeat
readln(fi, ID, dummy, Name, yr, mth, day);
if target <> ID then
writeln(fo, ID, ' ', Name, yr:5, mth:3, day:3)

else
found := true
until eof(fi) or found;

Step 3: 當然就是一堆「readln(Name, year, ...);」啦。

Step 4: 把餘下的抄到新檔案,自然要使用「while not eof(fi) do begin readln(fi, ...); writeln(fo, ...) end;」啦。

Step 4 之後: 有手尾,記得 close 呀!

溫習秘技︰其他那幾個 procedure 都用我這個方向來做,自己試試把書中每一句 pseudocode 譯作數行 Pascal code。當然,別忘記那些必須的讀及寫檔案的那幾句。😉

有唔識的話,歡迎在這兒留言發問!Very happy!

1 Comment »

  1. APPEND整係尾要新ID…
    咁INSERT插係中間又駛唔駛新ID? 駛唔駛插O岩位?

    Append: 要記住最後讀到的 ID,然後加一。都幾難做架。如果懶惰的話,可以用下 val, str。

    Comment by MK — Monday, 26 March, 2007 @ 15:45 | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.