ExtractFileDir — Функция Delphi

Клуб программистов

Delphi programming

Подписаться на рассылку:

ExtractFileDir

извлекает из полного имени файла название папки

|| function ExtractFileDir ( const FullFileName : string ) : string;

Описание:

Это — часть полного файлового имени вплоть до названия папки, не включая » \ » перед файловым именем.

Пример кода:

var
fullFileName : string;

begin
// Set up a full file name with drive and path
fullFileName := ‘C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu’;

// Show the component parts of this full name
ShowMessage(‘Drive = ‘+ExtractFileDrive (fullFileName));
ShowMessage(‘Dir = ‘+ExtractFileDir (fullFileName));
ShowMessage(‘Path = ‘+ExtractFilePath (fullFileName));
ShowMessage(‘Name = ‘+ExtractFileName (fullFileName));
ShowMessage(‘Ext = ‘+ExtractFileExt (fullFileName));
end;

Результат выполнения:

Drive = C:
Dir = C:\Program Files\Borland\Delphi7\Projects
Path = C:\Program Files\Borland\Delphi7\Projects\
Name = Unit1.dcu
Ext = .dcu

ExtractFileDir — Функция Delphi

Мастера не судите строго (начинающий). Я понимаю, наверное это ерундовый вопрос, но нигде не могу найти на него ответ. При сохранении файла указываю путь — ExtractFilePath(ParamStr(0))+»file.txt»
Как сделать так, чтобы файл сохранялся здесь, но в отдельную папку?

Здесь -это в той папке где находится сама прога. Я так понимаю при использовании ExtractFilePath(ParamStr(0))+»file.txt»
файл сохраняется там же где и ЕХЕ

to Lord Warlock ты ответ знаешь?

вопрос сформулируй нормально, я ничего не понял

ExtractFilePath(ParamStr(0))+»\NewPapaka»+»\file.txt».
Только папку надо предварительно создать.

to Lord Warlock Допустим ехе будет находиться C:\MyProg. Мне необходимо чтобы созданный прогой файл сохранялся C:\MyProg\Files\file.txt Я не могу явно указать путь, так как не знаю где будет находиться прога, поэтому использую ExtractFilePath(ParamStr(0)). Может я что-то не правильно понимаю?

Ну тогда как написал iNew © (02.06.03 09:59)

Если подкаталога нет, он будет создан

to Lord Warlock, to iNew понял спасибо

Не работает. Если писать так, как подсказал iNew ExtractFilePath(ParamStr(0))+»\NewPapaka»+»\file.txt».
, то делфи воспринимает все вместе \NewPapaka\file.txt как название файла.
Так как подсказал Lord Warlock, выдается ошибка о несответствии типов boolean и string.

ForceDirectories((ExtractFilePath(ParamStr(0))+»\Files»);
AssignFile(F, ExtractFilePath(ParamStr(0))+»\Files\file1.txt»);

Const MyFolder=»\Files»;
var Path,FileName: String;

Функция ExtractFilePath (наименование папки)

Добрый вечер!
Нужна Ваша помощь.
На форме расположено: Button, Edit.
При клике по кнопке нужно выбрать определенный файл (не столь важно ) и после этого в Edit загружается «Путь к файлу» типа («C:\Documents and Settings\User\Stol\Data»).

Как из этого пути вытащить название папки «Data»?

22.09.2014, 19:40

Наименование папки
Добрый день. У меня возник такой вопрос как узнать полное наименование папки если я, знаю только.

Найти все повторяющиеся элементы между тегом
Найти все повторяющиеся элементы между тегом и Есть xml документ.

Extractfilepath
Подскажите пожалуйста как заполнить StringGrid с помощью ExtractFilePath.

ExtractFilePath
Здрастите. Вот у меня есть путь к *.exe проекта (C:\kpris14\OPS\Bin). Как вернуться назад на одну.

ExtractFilePath
Подскажите, пожалуйста, в программе есть относительная ссылка: .

ExtractFileDir

Extract the drive and directory part of a filename.

Declaration

Source position: finah.inc line 27

Description

ExtractFileDir returns only the directory part of FileName , including a driveletter. The directory name has NO ending directory separator, in difference with ExtractFilePath.

Errors

See also

Extract the filename part from a full path filename.

Extract the path from a filename.

Extract the drive and directory part of a filename.

Extract the drive part from a filename.

Return the extension from a filename.

Extract a relative path from a filename, given a base directory.

ExtractFileDir — Функция Delphi

������ 1
function GetFileName(fname : String) : String;
var i : integer;
begin
Result := ExtractFileName(fname);
for i := Length(Result) downto 1 do
if Result = ‘.’ then
begin
Result := copy(Result, 1, i — 1);
break;
end;
end;

������ 2
function GetFileName(fname : String) : String;
begin
Result := ExtractFileName(fname);
while (Length(Result) > 0) and Result[Length(Result)] <> ‘.’ do
Delete(Result, Length(Result, 1));
end;

ExtractFileDir — Функция Delphi

Самый простой и самый верный способ узнать это для любого неизвестного выражения (или в случае внезапного приступа забывчивости) :
1. В любом свободном месте модуля пишем — ExtractFilePath
2. Ставим текстовый курсор где-нибудь внутри написанного
3. Аккуратно и не торопясь нажимаем заветную кнопу F1
4. Получаем нечто вроде:

Delphi Object and Component Reference
ExtractFilePath function

See also Delphi example C++ example
___________________________________ ________________
Returns the drive and directory portions of a file name.

Category
file name utilities
Delphi syntax:
function ExtractFilePath(const FileName: string): string;

Что самое важное — получаем самостоятельно и именно для своей версии Дельфи.

ExtractFileDir — Функция Delphi

20 Марта 2006 г.

Здравствуйте уважаемые подписчики рассылки «Интернет для Delphi программиста«. Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы. Изучайте Delphi один из лучших языков программирования.

Правила рассылки:
1. Не присылайте ответов на вопросы типа «да, нет».
2. Если отвечаешь на вопрос — то отвечай подробно с примерами (желательно с исходником примера).
3. Тема вопросов — программирование на Delphi.
Внимание авторам: — Я не указываю ваши адреса из-за спама, но кто хочет, чтобы его email был — пишите, иначе только имя(ник).
Отправить вопрос

Вопрос № 160 задаёт: amorfer Ответить
Здравствуйте! Как обработать в программе кнопку свернуть/развернуть (в заголовке окна)?
Вопрос № 161 задаёт: Vlad Ответить
Привет. У меня такой вопрос: как сделать скрин-шот полноекранного окна емулятора DOS (тоесть запущеново в Windows)? Print-Screen не работает .
Вопрос № 155 задаёт: мэйл_рфдл2 Ответить
Delphi 7
Windows XP SP2
————————
Кидаю на форму ListView , добавляю один Column и пару Item’ ов.
Listview1.Viewstyle=»vsReport»
Запускаю приложение, пытаюсь выделить одну из строк. а именно кликаю по интересующей строке. и она становится активной/выделенной, тОлькО через 1 — 1,5 — 2 секунды.
Но после этих мертвых секунд, все летает как должно летать.

Закрываю форму. Опять запускаю приложение. опять таже картина.

Отвечает: Александр
Посмотри в диспетчер задач и увидешь что при первом выборе строки в TTreeView создаются два потока. Видимо из-за этого и появляются 1 — 1,5 — 2 сек.
Вопрос № 156 задаёт: bakha Ответить
Как узнать только имя файла из OpenDialog1, а не полный путь.
Отвечает: Евгений http://decoding.narod.ru
ExtractFileName( OpenDialog1.FileName )
Отвечает: Александр
ExtractFileName(OpenDialog1.FileName) — Возвращает имя файла
Отвечает: Трифонов Владимир
вот пример получения только имени файла из OpenDialog
.
if opendialog1.Execute then begin
f_name:=AnsiUpperCase(ExtractFileName(Trim(OpenDialog1.Files.Strings[0])));
edit2.Text:=f_name;
end;
.
Отвечает: Karanchev K.V
if OpenDialog1.Execute then
ShowMessage(ExtractFileName(OpenDialog1.FileName));
Отвечает: Илья Шевченко
Есть множество функций для работы с файловыми именами. Вот несколько из них:
1)ExtractFileName — извлекает имя с расширением
2)ExtractFileDir — извлекает путь без знака ‘\’
3)changeFileExt — меняет расширение файла
и т.д. более подробно написано в замечательной работе посвещенной программированию на Дельфи. Чтобы его посмотреть надо в DelphiIDE нажать кнопку F1!
Отвечает: Ivan.Kashperuk
ExtractFileName(OpenDialog1.FileName);
Отвечает: LeVeL
Просто сделай так:
Отвечает: illuha
ExtratFileName(const FileName: string): string;
Возвращает имя файла с расширением, вырезанное из строки с полным именем
файла FileName.

А вобще читай справку «Процедуры и функции управления файлами».

Отвечает: Tmp
Используй функцию ExtractFileName. Например,
ExtractFileName(OpenDialog1.FileName)
Отвечает: Kassy
fn:=ExtractFileName(OpenDialog1.FileName);
Отвечает: Bruder
юзай ф-ию ExtractFileName(OpenDialog1.FileName).
С её помощью можно получать имя файла из его полного пути.
ExtractFilePath(OpenDialog1.FileName) — получение пути из полного пути к файлу (файл отбрасывается)
Отвечает: Wolfstar
Необхідно використати функцію extractfilename
var
s: string;
begin
if opendialog1.execute then
s:= extractfilename(opendialog1.filename);
end.
Отвечает: Ян Яблоновский
Вызов функции
ExtractFileName(OpenDialog1.Filename)
вернёт тебе нужное значение.
Если же хочешь получить имя без расширения, пиши так:
S := ExtractFileName(OpenDialog1.Filename) ;
L := Length(ExtractFileExt(S)) ;
S := Copy(S,1,(Length(S)-L)) ;

где переменная S имеет тип String, а переменная L — тип Integer.
Искомое значение будет в переменной S.
На случай, ежели тебе когда-нибудь потребуется получить только путь (без имени файла), например, чтобы узнать, в какой папке лежит твой экзешник, пиши типа
ExtractFilePath(Application.ExeName)
(Глобальная переменная Application инициализируется без вмешательства программера;
из её свойств чаще всего используется ExeName — возвращает имя и путь файла экзешника, а из методов — ProcessMessages, позволяющий программе обработать накопившиеся события не выходя из текущей процедуры/функции, что полезно в циклах и для режима ожидания.)
Да, чуть не забыл:
функция ExtractFileExt возвращает расширение вместе с предшествующей ему точкой, а функция ExtractFilePath возвращает путь, включая букву имени диска и следующее за нею двоеточие (если таковые содержатся в аргументе), а оканчивается строка, возвращаемая этой функцией, символом косой черты, отделяющей путь от имени файла.
Естественно, если аргумент (которым, в принципе, может быть любая строка) не содержит расширения или пути — соответствующие функции вернут пустую строку. Они не проверяют правильность аргумента (его соответствие ограничениям, накладываемым ОС на имена файлов), и уж тем более не проверяют физическое существование файла — для этого есть булевская функция FileExists, принимающая строковый аргумент — имя файла (возможно включающее путь).
Вопрос № 157 задаёт: God-Titan Ответить
У меня два вопроса:
1. Я программирую на Delphi 7 и у меня при обработке исключительных ситуаций (try..except) программы вечно слетают при запуске их из Delphi, но когда запускаю их обычным образом (через Проводник) программа работает как надо и исключительные ситуации работают так как и должны. Может надо, что-то в настройках Delphi изменить по поводу исключительных ситуаций? У меня Delphi настроена по умолчанию.
2. Как уменьшить размер получаемых *.EXE файлов? Я писал программу Калькулятор, в итоге ее размер составил килобайт 500-700. На мой взгляд она должна весить не более 100 Кб. Калькулятор в Windows весит 112 Кб. Были подключены стандартные модули: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls.
Может надо как-то по особому настроить среду? А, вообще, можете в кратце рассказать про эти модули и всегда ли они все нужны?
Отвечает: Евгений http://decoding.narod.ru
Часть 1

Для Delphi5 и ниже:
Tools -> Environment Options на вкладке Preference сбрось флажок Break on exception.

Для Delphi6 и выше:
Tools -> Debugger Options на вкладке Language Exceptions сбрось флажок Stop on Delphi Exception.

Это недостаток ООП, которым программисты расплачиваются за удобства визуального программирования. Обрати внимание, exe с пустой формой весит несколько сотен Kb (в зависимости от версии Delphi). У тебя два выхода: 1) Сжимать исполняемый файл каким-нибудь упаковщиком (например ASPack). Это уменьшит размер программы, но «по настоящему» маленькой она не станет. 2)Пиши программы на Win API. По сравнению с визуальным программированием это посложнее будет, но программы будут маленькими и шустрыми)

Отвечает: Илья Шевченко
1. Пункт меню Tools->Debugger Options. Вкладка Language Exceptions. Надо снять флажок Stop on Delphi Exceptions и все заработает как надо.
2. По этому поводу постоянно идет обсуждение на форумах. Размер большой потому, что в exe-файл компилируются компоненты и много чего лишнего. Чистый файл (который ничего не делает), но содержащий форму уже весит

300K! Калькулятор Windows занимает так мало потому, что он написан на WinApi.
Для уменьшения размеров exe-файлов есть несколько вариантов. А именно:
1) Использовать WinApi вместо компонентов deplhi (это совершенно лишено логики, но это вариант!). Использовать написаные на с++ dll.
2) Почистить хорошо секцию uses. Например я уверен, что модули Windows и Variants тебе не понадобятся. Также полезно вместо функций showmessage и MessageDLG использовать метод application.messagebox. это избавит от использовния модуля dialogs. и.т.д.
3) Использовать программы сжатия для exe/dll. Работают они следующим образом — сжимают твой файл (примерно, как архиватор:-) ), к файлу добавляют код для распаковки самого файла, а затем добавляют переход на этот код. Таким образом при загрузке exe сначала распаковывается, а затем запускается на выполнение. С одной стороны кажется, что это замедляет работу, а с другой — основное время уходит на чтение файла с диска, а т.к. файл уменьшается в размерах в 5-6 раз, то и время загрузки уменьшается!

Отвечает: Сергей
Можно уменьшить размер программы 2 способами:
1 — Писать программы, используя WinApi, модуль Windows и SysUtils ( без Forms,Graphics. ) — долго и «муторно». Т.е. создавать форму и обрабатывать все события формы «вручную».
2 — использовать exe-сжималки, например UPX executable packer http://upx.sf.net ( я использую) сжимает от 50% до 75%,
Отвечает: Tmp
При использовании технологии VCL(которая и обеспечивает очень удобный способ созданияформ в Delphi, а также удобный интерфейс обращения со всеми компонентами) получаем файлы больших размеров. Выхода здесь два:
писать без использования технологии VCL — используя лишь функции WinAPI — это достаточно сложно, особенно после элементарной работы с формами с VCL. Второй выход — переход на более новые версии delphi на технологию .NET. Файлы удивительным образом получаются намного меньше.
Отвечает: Bruder
1. Если у тебя Дельфи настроена по-умолчанию, то всё должно работать как
надо => ищи баг в исходнике.
2. Есть дох. много программ для сжатия файлов. Тот же UPX. Сжимает
как zip. Степень сжатия может доходить до 40-60%. Где скачать UPX? Да
он лежит на любом сайте. Зайди на www.delphi.int.ru там лежала свежая
версия. А вообще смотри яндекс. Насчёт модулей. Можно легко узнать
нужен он тебе или нет: 1. Удаляешь его из списка и компилируешь. Если
не компилируется, то возвращай. 2. RTFM :)
Отвечает: Ян Яблоновский
Меню Tools -> Debugger Options.
Далее во всплывающем окне вкладка Language Exceptions — убираешь галочку из чекбокса Stop on Delphi Exceptions.
Должно помочь (мне, по крайней мере, помогает).
Привет всем, а в особенности игроделам и писателям!
Отвечает: Sergey
2. Воспользуйся компонентом KOL и MCK размер проги станет где-то в 10 раз меньше.
Взять можно на http://bonanzas.rinet.ru/
Вопрос № 159 задаёт: Крылов И.В. Ответить
Проблема. В программе много справочников. Хочу их поместить в динамические библиотеки.
Использую ADO. Не знаю как передать соединение ADOConnection в DLL и привязать его там к ADOStoredProc или ADODataSet. Заранее спасибо.
Отвечает: Трифонов Владимир
сообственно вот пример передачи ADO коннекта в DLL:

Сама DLL (Тут не только передается ADOConnection, но и adoquery)

uses
SysUtils,
ADODB,
Classes;

procedure load_prava(idp:integer;ado:Tadoconnection;var adq:Tadoquery);stdcall;
begin
adq.Connection:=ado;
adq.Active:=false;
adq.SQL.Clear;
adq.SQL.Add(‘SELECT * FROM prav_form where > adq.Parameters.ParamByName(‘ > adq.Active:=true;
end;

exports load_prava;
begin
end.

А вот сам вызов этой DLL :

.
var
h:Thandle;
proc:procedure (idp:integer;ado:Tadoconnection;var adq:Tadoquery);stdcall;

procedure TF_main.set_akcess;
begin
//Load dll
h:=LoadLibrary(‘dll\load_prav.dll’);
@proc:=GetProcAddress(h,’load_prava’);
proc(dm.id_prav,dm.ADO,adoquery1);
adoquery1.Active:=true;
adoquery1.First;

Статья: » Получение информации о выполняющихся процессах.»

Получить информацию о выполняющихся в данный момент на компьютере процессах можно на основе функций API. Для разных платформ эти функции отличаются, как и подключаемые для этих целей модули. Рассмотрим платформу Win95 и WinNT.

В Win95 (Windows 95/98) код может выглядеть следующим образом:

function GetProcessesWin95(var Proc: TProcArray):Integer;
var
FSnap: THandle;
PE: TProcessEntry32;
PPE: PProcessEntry32;
I: Integer;
begin
If FSnap > 0 then CloseHandle(FSnap);
FSnap:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PE.dwSize:=SizeOf(PE);
I:=0;
SetLength(Proc,1000); // заведомо большой массив
If Process32First(FSnap,PE) then
repeat
New(PPE);
PPE^:=PE;
Proc[I]:=PPE.szExeFile;
I:=I+1;
until not Process32Next(FSnap, PE);
Result:=I;
end;

Для работы этого кода нужно подключить в разделе USES модуль TlHelp32 (Help Tool API 32).

Функция возвращает число процессов и записывает их пути в массив-переменную Proc. Тип переменной Proc – обычный массив строк, который нужно описать в разделе описания типов:

type TProcArray = Array of String;

Поясню основные моменты реализации кода. Строка

FSnap:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);

означает получение «моментального снимка всех процессов». Точнее, в результате ее выполнения мы получаем дескриптор снимка. Функции Process32First и Process32Next позволяют «пробежаться» по всем процессам. О более детальной информации отсылаю читателя к справочной литературе об API.

Для NT-платформы (Windows NT/2000) аналогичный код может выглядеть следующим образом:

function GetProcessesWinNT(var Proc: TProcArray):Integer;
var
Num: Integer;
LP: Array[0..$3FFF-1] of Dword; // заведомо большой массив
CB: DWord;
CBNeeded:DWord;
ProcHndl: THandle;
ModHand: HModule;
ModName: array [0..MAX_PATH] of Char;
I: Integer;
begin
EnumProcesses(@LP,CB,CBNeeded);
Num:= CBNeeded div SizeOf(DWORD);
SetLength(Proc,Num);
For I:=0 to Num-1 do
begin
ProcHndl:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,LP[I]);
If GetModuleFileNameEx(ProcHndl,ModHand,ModName,SizeOf(ModName))> 0 then
Proc[I]:=ModName else Proc[I]:=’Unknown’;
end;
IF ProcHndl > 0 then CloseHandle(ProcHndl);
Result:=Num;
end;

Здесь уже используется модуль PSAPI, который необходимо включить в раздел USES. Кому интересно разобраться в деталях данного кода отсылаю к справке по API.

Замечу, что под управлением WINDOWS 2000, в списке процессов я наблюдал иногда «абракадабру» по путям некоторых процессов. Предлагаю в этом вопросе читателю разобраться самостоятельно, а у меня пока до этого не дошли руки. Тем не менее, считаю, что данная статья может послужить хорошим подспорьем, для всех интересующихся данным вопросом.

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

function GetPlatform: String;
var
VI: TOSVersionInfo;
begin
VI.dwOSVersionInfoSize:=SizeOf(VI);
GetVersionEx(VI);
Case VI.dwPlatformId of
Ver_Platform_Win32s: Result:= ‘Win32s’;
Ver_Platform_Win32_Windows: Result:=’Win95′;
Ver_Platform_Win32_NT: Result:=’WinNT’
else Result:=’Unknown Platform’;
end;
end;

В моем модуле SysInfo v.3.00 можно найти функции получения информации о выполняемых процессах и о другой системной информации.

Неограниченное количество (секций) с разной степенью заполненности, расположенных на одном компоненте Надпись на каждой секции, с указанием процентов или без оного;
— 2D и 3D режимы отображения, плавно переходящие друг в друга заданием угла наклона;- Настраиваемые цвета, освещение и прозрачность термометров; Вертикальный и горизонтальный режимы показа;

компонент для построения структуры локальной сети в виде дерева.

компонент позволяющий писать лог-файл

пакет для перевода денежных единиц из цифрового формата в текстовый

компонет изображает 6 различных видов световых индикаторов

компонент рисует кнопку в виде элипса

компонент показывает JPEG, BMP файлы, много настроек

компонент работает с базами DBF без помощи BDE

красивая и довольно привлекательная кнопка

компонент предназначен для записи и чтения ini-файла

прггресс бар в виде цилиндра

LABEL с 3D эффектом

различная инфо о системе ПК

LABEL с градиентным эффектом

hint непрямоугольной формы

цифровой индикатор, электронные часы

набор интересных и полезных компонентов, украшающих интерфейс программы

Интересные и полезные сайты по Delphi: Если Вы хотите, чтобы Ваш сайт был в этом разделе пишите .

http://www.noil.pri.ee/ — Здесь вы можете почитать статьи, скачать исходники и компоненты, пообщаться на форуме.
http://www.delphi.int.ru/ — Ресурс для Delphi-программистов, где каждый найдёт что-то полезное!
http://www.ExCode.ru — Программирование на высоком уровне
http://decoding.narod.ru — Сайт для Delphi-программистов со статьями автора, компонентами, FAQ, и другой полезной информацией.
http://www.p-lib.pp.ru/ — На сайте находится множество статей по Visual C++, Visual Basic, ASP.NET/ASP, Delphi, Java, Базам Данных, PHP, Perl и т. д. Кроме того есть каталог сайтов, свежие компьютерные новости, софт, книги и многое другое.

Немного юмора: :))

Приходит новый русский в фирму заказывать персональный Web-сайт. Поговорил с дизайнером. Малиновый сайт, значит, будет. По фону растопырчики раскидать, музыкой «Мурку» пустить и кучи других прибамбасов.
И тут дизайнер ему и говорит:
— У Вас заказ получается больше пяти тысяч баксов. Поэтому я бесплатно на Ваш сайт счетчик обращений поставлю.
Новый русский насупился:
— А не много на себя берешь, меня на счетчик ставить.

«Как правильно вставлять дискету 3.5?»
Обычно ее берут правой рукой и вставляют в подходящее по размерам отверстие на глубину примерно шести пальцев. Впрочем, если вы левша, можете смело использовать левую руку — запреты тут неуместны. Попробуйте проделать это с помощью губ, бедер, мышц заднего прохода — это внесет разнообразие в вашу повседневную жизнь.

Настоящий программист никогда не ставит комментариев. То, что
писалось с трудом, должно пониматься с трудом.

. технология Drag & Drop не прижилась в России. Как поведал нам
слесарь Х., «я . что . что ли? Если . утащил, то уж . не брошу».

— Верно ли, что 0 это FALSE («ложь»), а 1 это TRUE («правда»)?
— 1!

— А моя жена мне вчеpа на пейджеp какую-то фигню сбpосила, так он
pаботать пеpестал!
— . Пейджеpный виpус какой-то?
— Да не пpизнаётся. Hо, по-моему, утюг, потому как тоже тепеpь не
pаботает.

Все кто хочет изучить Delphi и реально научиться писать свои программы, ЦПИ «Эверест» поможет Вам.
Всё, что Вам нужно это компьютер и доступ к интернету — для получения уроков.

10 причин в пользу платного обучения в ЦПИ «Эверест»…

1. Когда Вы платите деньги — появляется дополнительный стимул против лени: надо учиться, ведь деньги уже уплачены….
2. Учась платно, получаете удобный для Вас график работы.
3. Весь необходимый справочный материал Вы получите в свое время и на русском языке .
4. Используя интернет в качестве бесплатной библиотеки, Вы получаете все ее минусы :

  • трата времени на поиск необходимого материала (а это потерянные деньги и время). А у Вас есть лишние время и деньги?;
  • отсутствие гарантии , что Вы «осилите» данный материал, ведь пишут его, в основном, не педагоги- профессионалы, а программисты- профессионалы, а они пишут для таких же, как они. А Вы программист- профессионал?
  • отсутствие системности в скачиваемом материале (ведь человек, писавший для Вас материал, не знает, чем Вы владеете). А Вы обладаете системой знаний по Delphi?;

5. Стоимость обучения одного месяца в ЦПИ «Эверест» сравнима с ценой хорошей книги. Но часто ли Вам попадались книги, рассчитанные именно на Вас. Мы же работаем индивидуально .
6. Автор книги или магазин не несет никакой ответственности за то, поняли ли Вы материал или нет, мы же закрепляем за каждым курсантом преподавателя, курирующего Вас.
7. Освоив программирование в Delphi — Вы освоите:

  • основы настоящего программирования — структурного и процедурного программирования ;
  • систему работы с базами данных и SQL- запросами, а это одно из самых перспективных направлений в программировании;
  • язык программирования ObjectPascal, что позволит Вам легко перейти, при желании, на С или Паскаль;
  • работус компьютерной графикой ;
  • при желании — основы низкоуровневого программирования ( Ассемблер ).

8. А это значит, что … Мы предлагаем получить «высшее образование» — профессию программиста всего за 1 год и 144 доллара, любой ВУЗ попросит в 3 раза больше за один только семестр.
9. Вы получаете самый практический курс в сети, поскольку теория дается только тогда, когда она действительно необходима…
10. Учиться у нас легко и просто. Весь материал доступен и простым людям, не имеющим никогда дел с программированием….

По всем вопросам обращайтесь ко мне.

Если вы встретили в интернете интересный сайт или статью, да и вообще, что угодно связанное с Delphi, поделитесь ссылкой.
Если можете написать статью связанную с Delphi — присылайте с радостью выложу.
Давайте поможем друг другу! Архив рассылки.

ExtractFileDir — Функция Delphi

Внимание! Эти функции работают со строками, представляющими из себя имена файлов. И результы их работы — тоже строки. Физически с файлами они ничего не делают.

Таблица стандартных процедур и функций для работы с именами файлов
Наименование Описание
ChangeFileExtention функция Изменяет расширение файла.
DosPathToUnixPath функция Конвертирует путь, заданный в спецификации DOS в путь по спецификации Unix.
ExcludeTrailingBackslash функция Возвращает путь без символов разделителей пути («\» — для Windows и «/» — для Linux). Эта функция включена для совместимости со старыми версиями. Новые программы должны использовать ExcludeTrailingPathDelimiter.
ExcludeTrailingPathDelimiter функция Возвращает путь без символов разделителей пути («\» — для Windows и «/» — для Linux).
ExpandFileName функция Возвращает полный путь для имени файла, заданного относительно, без учета регистра.
ExpandFileNameCase функция Возвращает полный путь для имени файла, заданного относительно, с учетом регистра.
ExpandUNCFileName функция Возвращает полный путь для имени файла в формате Universal Naming Convention для сетевых файлов, если это возможно.
ExtractFileDir функция Возвращает полное (включая имя диска) имя дирректории, в которой расположен файл.
ExtractFileDrive функция Возвращает имя диска.
ExtractFileExt функция Возвращает расширение файла.
ExtractFileName функция Возвращает имя файла с расширением.
ExtractFilePath функция Возвращает полный путь к файлу.
ExtractRelativePath функция Возвращает относительное имя файла относительно заданной базовой директории.
ExtractShortPathName функция Конвертирует полное имя файла в короткую 8.3 форму. Например: «C:\Program Files\MyCompany\MyApp\MyApp.exe» будет преобразовано в «C:\Progra

1\MyApp\MyApp.exe».

IncludeTrailingBackslash функция Включает в путь символы разделителей пути («\» — для Windows и «/» — для Linux). Эта функция включена для совместимости со старыми версиями. Новые программы должны использовать IncludeTrailingPathDelimiter.
IncludeTrailingPathDelimiter функция Включает в путь символы разделителей пути («\» — для Windows и «/» — для Linux).
IsPathDelimiter функция Показывает являектся ли символ в указазанной позиции символом разделителя пути («\» — для Windows и «/» — для Linux).
MatchesMask функция Показывает удовлетворяет ли конкретное имя файла формату, заданному в маске.
MinimizeName функция Укорачивает полное имя файла так, чтобы оно поместилось в ограниченную область вывода. Если полное имя файла превышает область вывода, MinimizeName заменяет часть пути точками так, чтобы имя файла вписалось в заданные рамки.
ProcessPath процедура Раскладывает полное имя файла по полочкам, вычленяя: имя диска, путь к файлу, короткое имя файла с расширением.
UnixPathToDosPath функция Конвертирует путь, заданный в спецификации Unix в путь по спецификации DOS.

Список литературы:

  1. Delphi7 Help

ExtractFileDir — Функция Delphi

На этом шаге мы рассмотрим свойства, методы и события класса TApplication .

Компонент TApplication инкапсулирует приложение при выполнении. Delphi автоматически создает экземпляр Application класса TApplication при выполнении приложения. Для использования этого объекта включите модуль Forms в раздел Uses .

Свойства класса TApplication

TApplication предоставляет несколько свойств, с помощью которых можно отслеживать состояние приложения и контролировать некоторые аспекты его поведения.

  1. property Active: Boolean; — это свойство имеет значение True , если в приложении в текущий момент содержится фокус ввода. Если это свойство приложения имеет значение True , то и свойство Active для одной из форм также равно True . Обычно оно используется для определения, имеет ли приложение фокус ввода перед выводом строки состояния или прорисовкой объекта TCanvas .

Примечания .

  1. Даже будучи неактивным, приложение продолжает получать сообщения о перемещении мыши.
  2. Значение этого свойства можно только читать.

  1. property ExeName: string; — представляет собой строку, содержащую полный путь выполняемого файла. Чаще всего оно используется для определения рабочего каталога приложения, в котором могут находиться файлы данных или инициализации программы.

Примечание . Для выделения из этого свойства рабочего каталога, используйте функции ExtractFileDir или ExtractFilePath . Для получения имени файла — функцию ExtractFileName . Функция ExtractFileExt вернет расширение файла, а функция ExtractFileDrive — имя устройства, на котором расположен файл. Все эти функции находятся в модуле SysUtils .

  1. property Hint: string; — содержит текст, который будет выведен после запуска события OnHint . Значением этого свойства является текст подсказки Hint того визуального компонента, над которым в данный момент перемещается курсор мыши. Это свойство можно использовать, например, для отображения подсказки в строке состояния приложения.
  2. property ShowHint: Boolean; — установка свойства равным False отключает систему подсказок для всех элементов в приложении независимо от их индивидуальных установок.
  3. property HintColor: TColor; — определяет цвет окна всплывающей подсказки. По умолчанию это цвет clInfoBk (желтый), но его можно изменять программно.
  4. property HintPause: Integer; — задает время (в миллисекундах) перед выводом окна подсказки (значение по умолчанию — 500 миллисекунд или половина секунды).
  5. property HintHidePause: Integer; — задает время (в миллисекундах) перед закрытием окна подсказки (значение по умолчанию — 2500 миллисекунд или две с половиной секунды).
  6. property HintShowPause: Integer; — задает время (в миллисекундах) перед отображением окна подсказки, если активна подсказка другого элемента (значение по умолчанию — 50 миллисекунд). Это свойство позволяет предотвратить появление неприятного мерцания, если пользователь быстро перемещает мышь над разными компонентами.
  7. property Icon: TIcon; — позволяет изменить пиктограмму, представляющую приложение в панели задач во время работы. Это полезно, если необходимо отмечать, таким образом, изменение состояния приложения. Следующий код назначает пиктограмму из файла INACTIVE.ICO :

Рис.1. Вкладка Application

Свойство может изменяться программно, например, изменяя надпись в зависимости от режима работы приложения.

  • property MainForm: TForm; — задает главную форму приложения.
  • property ShowMainForm: Boolean; — определяет, должна ли главная форма быть видимой в момент запуска приложения на выполнение. По умолчанию оно равно True , что обеспечивает видимость главной формы в момент начала работы приложения. Если установить это свойство в False до вызова метода Application.Run и, если при этом свойство Visible главной формы тоже равно False , то главная форма в первый момент будет невидимой.
  • property HelpFile: string; — указывает файл справки, который используется в приложении в данный момент как файл по умолчанию. Если это свойство не изменяется во время выполнения приложения, то оно равно опции Help File , задаваемой во время проектирования на странице Application окна опций проекта. Свойство можно изменять программно, назначая в зависимости от режима работы приложения тот или иной файл справки.
  • Методы класса TApplication

    Рассмотрим некоторые методы объекта Application . Методы Initialize — инициализация объекта, и Run — запуск выполнения приложения, включаются в каждый проект автоматически. Это можно увидеть в файле проекта (пункт меню Project | View Source ). Там же размещается метод создания форм CreateForm для всех автоматически создаваемых форм проекта. Общий вид этого метода следующий:

    При выполнении метода:

    Метод Terminate завершает выполнение приложения. Если нужно завершить приложение из главной формы, то вместо метода Application.Terminate можно использовать метод Close главной формы. Но если требуется закрыть приложение из какой-нибудь вторичной формы (например, из окна диалога), то нужно применить метод Application.Terminate .

    Метод Minimize сворачивает приложение, помещая его пиктограмму на панель задач. Метод Maximize разворачивает приложение на весь экран.

    События класса TApplication и их обработка

    Объект класса TApplication создается только при выполнении приложения, значит на этапе разработки приложения все его события недоступны. Поэтому нельзя использовать Инспектор объектов (Object Inspector) для создания обработчиков событий. Однако в некоторых случаях требуется создавать обработчики событий этого класса. Приведем общий способ создания обработчиков событий класса TApplication .

    Сначала опишем обработчик события. Поскольку событие распознается и запускается объектом, обработчик должен быть методом объекта. Он также должен соответствовать соглашению о вызовах события, которое обычно описано в справочной системе. Например, из файлов справки можно узнать, что событие OnActivate типа TNotifyEvent является наиболее общим типом. Его описание выглядит так:

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

    Создадим новое приложение и модифицируем описание TForm1 :

    Описание обработчика как protected не несет особой нагрузки и принято по умолчанию. Важно лишь, чтобы он был методом класса.

    Теперь, когда мы описали обработчик, определим его. Для этого нужно поместить код этого обработчика в раздел implementation модуля:

    При выполнении этого обработчика на экран выводится диалоговое окно с сообщением: Привет всем. , кнопкой OK и картинкой с символом i .

    Наконец, назначим обработчик событию. Обычно это выполняется в событии OnCreate главной формы. Измените обработчик события OnCreate класса TForm1 следующим образом:

    Эта конструкция означает, что при возникновении события Application.OnActivate будет выполняться процедура OnActivateHandler .

    В результате выполнения этого приложения на экране будет следующая «картинка»:

    Рис.2. Внешний вид приложения

    Текст этого примера можно взять здесь.

    На следующем шаге мы продолжим рассматривать обработку событий класса TApplication , в частности, познакомимся с компонентом ApplicationEvents .

    ExtractFileDir — Функция Delphi

    Как разбить значение, которое возвращает Opendialog1.FileName в две строки, то есть:

    Надо по нажатию кнопки отображение на форме в едитах:
    Edit1.Text = ‘D:\Temp\’;
    Edit2.Text = ‘Probnik.txt’;

    Кто знает, и кому не сложно — подскажите!!

    Extracts the drive and directory parts from FileName.
    Unit
    SysUtils

    [Delphi] function ExtractFileDir(const FileName: string): string;

    Description
    The resulting string is a directory name suitable for passing to the CreateDir , GetCurrentDir , RemoveDir , and SetCurrentDir functions. This string is empty if FileName contains no drive and directory parts.
    Note:
    This function works for multi-byte character systems (MBCS).

    Returns the drive and directory portions of a file name.
    Unit
    SysUtils

    [Delphi] function ExtractFilePath(const FileName: string): string;

    Description
    The resulting string is the leftmost characters of FileName, up to and including the colon or backslash that separates the path information from the name and extension. The resulting string is empty if FileName contains no drive and directory parts.

    This function works for multi-byte character systems (MBCS).

    Илон Маск рекомендует:  Что такое код getclassname
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL