掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ExtractFileDir(ファイルの親フォルダ名を返す関数) が存在しないフォルダ名を返す (ID:29973)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
// ↓このようなファイルパスの場合、D6で ExtractFileDirを実行すると、 // パスの末尾の半角文字が消える。 多分、D6だけのバグだネ。 // D6でExtractFileDir関数を使う時は注意すべし。 Memo1.Lines.Add(ExtractFileDir_Bug('C:\パスの末尾が全角文字+"半角文字"\ファイル名.ext')); // Bugfix版ならOK Memo1.Lines.Add(ExtractFileDir_Fix('C:\パスの末尾が全角文字+"半角文字"\ファイル名.ext')); // D6版のExtractFileDir function ExtractFileDir_Bug(const FileName: string): string; var I: Integer; begin I := LastDelimiter(PathDelim + DriveDelim, Filename); if (I > 1)and(FileName[I] = PathDelim)and (((FileName[I - 1] <> PathDelim)and(FileName[I-1] <> DriveDelim))or (ByteType(FileName, I-1) = mbTrailByte)) then Dec(I); while (ByteType(FileName, I-1) = mbTrailByte)and(I > 0) do Dec(I); Result := Copy(FileName, 1, I); end; // BugFix版のExtractFileDir function ExtractFileDir_Fix(const FileName: string): string; var I: Integer; begin I := LastDelimiter(PathDelim + DriveDelim, Filename); if (I > 1)and(FileName[I] = PathDelim)and (not IsDelimiter(PathDelim + DriveDelim, FileName, I-1)) then Dec(I); Result := Copy(FileName, 1, I); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.