2014-11-02 59 views
2

我忙於研究舊的11年級試卷,我的老師沒有解釋(ipos -1)之類的東西的意義,任何人都可以解釋爲什麼需要這樣做因爲此刻我正在努力瞭解ipos-1和複製和刪除功能的功能。代碼被提供如下:使用文本文件和數組(需要說明)

procedure TForm1.CreateBookCode1Click(Sender: TObject); 
var icount,k,ipos:integer; 
begin 
    richedit1.Clear; 
    richedit1.Lines.Add('Book Title'+#9+'Book Code'); 
    for k:=1 to icount do 
    begin 
    ipos := pos(';',arrBooks[k]); 
    arrtitle[k] := copy(arrbooks[k],1,ipos-1); 
    delete(arrbooks[k],1,ipos); 
    ipos := pos(',',arrbooks[k]); 
    arrsurname[k]:= copy(arrbooks[k],1,ipos-1); 
    arrcode[k] := copy(arrsurname[k],1,3) +inttostr(k); 

    richedit1.Lines.add(arrtitle[k] + #9 + arrcode[k]); 
    end; 
+0

您知道如何查找文檔?複製已記錄。 – 2014-11-02 14:55:20

回答

4

ipos := pos(';',arrBooks[k]); arrtitle[k] := copy(arrbooks[k],1,ipos-1);

這是說「所設定的arrtitle陣列的第k個元素,是在的第k元素的所述第一分號之前的字符的字符串arrbooks陣列。

換句話說,每個元件的標題是所述元件的第一部分,分號之前的位。

其原因從知識產權局減去1是知識產權局是分號的位置在k't hr元素的arrbooks數組。從副本中減去一個意味着您不要複製分號。

注意,似乎至少有兩個問題在這裏:

1)ICOUNT似乎並不被初始化。它應該包含arrbooks數組中的元素數量。

2)在用於設置知識產權局的線,arrbooks是錯誤類型的:它有一個資本乙

delete(arrbooks[k],1,ipos);

這是說「從arrbooks陣列的第k個元素中刪除所有字符從開始到分號(因爲ipos指向arrbooks數組的第k個元素中的分號)。

+0

非常感謝您。真的幫助我很多:) – Lucas999 2014-11-02 10:26:31

+2

不客氣。感謝peop的標準方式他們在堆棧溢出的答案是upvote他們。選擇最能幫助你的答案,並通過點擊投票按鈕下方的大勾來「接受」答案。 – GreenAsJade 2014-11-02 10:27:25