Delphi小ネタ
Posted at 2002-12-30T02:00:00+09:00 in Coding
日記書くネタが無いので。ロングファイルネームをショートファイルネームにするのは、ExtractShortPathName()で一発なんですが、逆が無かったりする。で、書くわけさ。
function ExtractLongPathName(FileName: TFileName): String;
var
sr : TSearchRec;
begin
Result := '';
FileName := ExpandFileName(FileName);
while LastDelimiter('\', FileName) >= 3 do
begin
if FindFirst(FileName, faAnyFile, sr) = 0 then
begin
try
Result := '\' + sr.Name + Result;
finally
FindClose(sr);
end;
end
else
begin
Result := '\' + ExtractFileName(FileName) + Result;
end;
FileName := ExtractFilePath(FileName);
SetLength(FileName, Length(FileName) - 1);
end;
Result := FileName + Result;
end;
実は、あんまり使い道ないんですが、ショートファイルネームかロングファイルネームのどちらが取得されるかわからない場合、とりあえずこの関数に通せば、ロングファイルネームで考えられる・・・と。どんな場合やねん。
友人曰く、僕のDelphiのコードは、「begin~end書きすぎ」だそうだ。なんとなく、挟んでないと落ち着かないんだよ。
Weblog archives
by Month
- October, 2006 (9)
- September, 2006 (23)
- August, 2006 (31)
- July, 2006 (8)
- October, 2005 (13)
- September, 2005 (24)
- August, 2005 (26)
- July, 2005 (2)
- June, 2005 (2)
- May, 2005 (13)
- April, 2005 (30)
- March, 2005 (33)
- February, 2005 (13)
- January, 2005 (10)
- December, 2004 (28)
- November, 2004 (27)
- October, 2004 (25)
- September, 2004 (38)
- August, 2004 (52)
- July, 2004 (45)
- June, 2004 (41)
- May, 2004 (48)
- April, 2004 (36)
- March, 2004 (51)
- February, 2004 (55)
- January, 2004 (63)
- December, 2003 (46)
- November, 2003 (63)
- October, 2003 (92)
- September, 2003 (61)
- August, 2003 (93)
- July, 2003 (57)
- May, 2003 (5)
- April, 2003 (35)
- March, 2003 (35)
- February, 2003 (37)
- January, 2003 (62)
- December, 2002 (32)
This page was last modified on 2003-11-18T19:31:45+09:00 (in 0.605 secs).