Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

Снова DOS Path   Найти похожие ветки 

 
AlexanderMS ©   (2006-05-31 16:56) [0]

Я уже задавал здесь такой вопрос: как превратить строку пути в формате DOS (7 букв + тильда ~ в каждой секции) в нормальный виндоузовский путь. Мне предложили GetLongPathName:

> function GetLongPathName(lpszShortPath, lpszLongPath: PChar;
>  cchBuffer: DWORD): DWORD; stdcall; external "kernel32.dll";

- я оставил на потом, а когда попробовал осуществить - ошибка в RunTime: точка входа ... не найдена. Так и не понял. Подскажите, пожалуйста, как?


 
Джо ©   (2006-05-31 17:00) [1]

GetLongPathNameA


 
Джо ©   (2006-05-31 17:02) [2]

Т.е, например, так:

function GetLongPathName(lpszShortPath, lpszLongPath: PChar;
 cchBuffer: DWORD): DWORD; stdcall; external "kernel32.dll" name "GetLongPathNameA"


 
AlexanderMS ©   (2006-05-31 18:16) [3]

Я сделал так:
procedure TWindow.FormActivate(Sender: TObject);
var
 Longpath : PCHar;
begin
 if (paramstr(1) <> "") and (filename = "")
   then
     begin
       filename := paramstr(1);
       GetLongPathName(PChar(filename), LongPath, 0);
       Filename := String(LongPath);
       readfile
     end
   else newfile

end;


Путь нормальный, а имя файла какое-то странное: Lбi вместо generals.csf. Вот и ошибка выдаётся. Как сделать то же с именем файла?


 
begin...end ©   (2006-05-31 18:22) [4]

> AlexanderMS ©   (31.05.06 18:16) [3]

Вы не выделили память для буфера, связанного с LongPath.


 
Джо ©   (2006-05-31 18:24) [5]

Например, так:
var
 Longpath : array [0..MAX_PATH] of Char;

или выделять память динамически через GetMem и освобождать ее FreeMem, когда она уже не нужна.


 
AlexanderMS ©   (2006-05-31 19:22) [6]

Огромное спасибо! Всё получилось!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.012 c
11-1128549488
Юрий Ж.
2005-10-06 01:58
2006.06.18
Редактор с возможностью всавки картинок....


1-1147515408
sinus
2006-05-13 14:16
2006.06.18
Кнопка на таскбаре


3-1145170476
Виталька 2006
2006-04-16 10:54
2006.06.18
Конфигурация BDE при установке


2-1148989677
VitV
2006-05-30 15:47
2006.06.18
RichEdit-вставка таблицы.


15-1148359025
egert
2006-05-23 08:37
2006.06.18
Отправка письма через прокси





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский