delphi 兩個有意思的函式

2021-07-02 20:13:26 字數 886 閱讀 6995

此函式可以用variant返回多個欄位的值

function tdataset.getfieldvalue(const fieldname: string): variant;

vari: integer;

fields: tlist;

begin

if pos(';', fieldname) <> 0 then

begin

fields := tlist.create;

trygetfieldlist(fields, fieldname);

result := vararraycreate([0, fields.count - 1], varvariant);

for i := 0 to fields.count - 1 do

result[i] := tfield(fields[i]).value;

finally

fields.free;

end;

end else

result := fieldbyname(fieldname).value

end;

---此函式可以返回fieldnames中多個欄位中第pos個字段的欄位名,在db檔案中;ps:我手裡有一組api,也是類似功能。應該比它更強大,因為介面有mask欄位,不知道效能怎麼樣?

extractfieldname(fieldnames, pos);

--可以在不影響dataset游標的情況下返回指定的值--ps:太爽啦,找了幾年這個函式,終於找到了。

function lookup(const keyfields: string; const keyvalues: variant; const resultfields: string): variant; override;

兩個有意思的模擬

今天在群裡閒聊當前疫情的情況,看到兩個以技術思路做的模擬,挺有意思的,不長,或許有些幫助。第乙個,ddos和cc 這次大量病例的爆發,其實就像是對醫療體系的ddos,外加cc。這種從防攻擊角度,要麼有抗d的平台,洗掉惡意 非真實感染者 流量,放真實流量進來,但是目前看,沒有特效藥,沒有快速的檢測機制...

兩個有意思的遞迴小程式

最近聽到的兩道面試 筆試題,感覺挺有意思的 1。實現庫函式strlen,不能使用任何庫函式,不能定義任何變數。2。實現函式strrev,該函式有兩個引數,將其中乙個字串逆序放到另乙個字串指標中,同樣要求不能使用任何庫函式,不能定義任何變數。採用遞迴實現,剛好可以滿足這兩道題的要求 void strr...

有意思的兩個值作為主鍵

有乙個表,需要兩個欄位date和platform作為主鍵。於是我把這兩個字段封裝成乙個物件,並重寫等於 小於運算子或hash值 實際沒有重寫成功,用的是python 才能夠將物件作為dict 字典 的key。剛接觸python,沒能實現我想要的 冥思苦想之際,得人指點 廢那勁幹嘛,直接把這兩個值用字...