Разное
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Автоматическое определения кодировки текста
Категория: Текст и строки
Категория: Текст и строки
Объект экрана — Screen
Категория: Компоненты
Категория: Компоненты
Проверить существование определённого URL
Категория: Базы данных
Категория: Базы данных
Замена подстроки в строке
Категория: Текст и строки
Категория: Текст и строки
Как можно проверить, запущена программа с локального диска или из сети
Категория: Интернет и Сети
Категория: Интернет и Сети
BDE. Динамическое создание псевдонима
Категория: Базы данных
Категория: Базы данных
Получение выделенного текста из компонента TWebBrowser
Категория: Интернет и Сети
Категория: Интернет и Сети
Число строкой с предстоящими нулями
Категория: Текст и строки
Категория: Текст и строки
Перегенерировать все индексы Dbase
Категория: Базы данных
Категория: Базы данных
Форма всегда наверху
Категория: Компоненты
Категория: Компоненты
Delphi - База Знаний: Получить короткий путь файла (изменив русские буквы) если есть длинный и на оборот
function sfn(const LongName: String): String;
// Возвращает LongFileName преобразованное в соответствующее короткое имя
var i :Integer;
begin
В В SetLength(Result,Length(LongName));
В В i := GetShortPathName(pChar(LongName),pChar(Result),Length(Result));
В В ifВ В i > Length(Result)В В then begin
В В В В SetLength(Result,i);
В В В В i := GetShortPathName(pChar(LongName),pChar(Result),Length(Result));
В В end;
В В SetLength(Result,i);
end;
function ShortToLongFileName(FileName: string): string;
// Возвращает FileName преобразованное в соответствующее длинное имя
var
В В KernelHandle: THandle;
В В FindData: TWin32FindData;
В В Search: THandle;
В В GetLongPathName: function(lpszShortPath: PChar; lpszLongPath: PChar;
В В В В В В В В В В В В В В В В В В В В В В В В В В В В cchBuffer: DWORD): DWORD; stdcall;
begin
В В KernelHandle := GetModuleHandle('KERNEL32');
В В if KernelHandle <> 0 then
В В В В @GetLongPathName := GetProcAddress(KernelHandle, 'GetLongPathNameA');
В В // Использю GetLongPathName доступную в windows 98 и выше чтобы
В В // избежать проблем доступа к путям UNC в системах NT/2K/XP
В В if Assigned(GetLongPathName) then begin
В В В В SetLength(Result, MAX_PATH + 1);
В В В В SetLength(Result, GetLongPathName(PChar(FileName), @Result[1], MAX_PATH));
В В end
В В else begin
В В В В Result := '';
В В В В // Поднимаюсь на одну дирректорию выше от пути к файлу и запоминаю
В В В В // в result.В В FindFirstFile возвратит длинное имя файла полученное
В В В В // из короткого.
В В В В while (True) do begin
В В В В В В Search := Windows.FindFirstFile(PChar(FileName), FindData);
В В В В В В if Search = INVALID_HANDLE_VALUE then Break;
В В В В В В Result := String('') + FindData.cFileName + Result;
В В В В В В FileName := ExtractFileDir(FileName);
В В В В В В Windows.FindClose(Search);
В В В В В В // Нахожу имя диска с двоеточием.
В В В В В В if Length(FileName) <= 2 then Break;
В В В В end;
В В В В Result := ExtractFileDrive(FileName) + Result;
В В end;
end;