1

Тема: OpenDialog у делфі

Доброго вечора

У мене ось яка проблема. Мені потрібно записати назву файлу в поле Edit
я скористався функцією ExtractFileName

та написав такий код:

      if OpenDialog1.Execute then
        begin
          Edit1.Text:=ExtractFileName(OpenDialog1.FileName);
        end;

Проблема в тому що в поле записується назва файлу і розширення файлу, а мені просто потрібно вписати саму назву файлу без розширення.
Підкажіть що робити, буду щиро вдячний.

2

Re: OpenDialog у делфі

Зайти в довідку і знайти потрібну функцію: http://docwiki.embarcadero.com/RADStudi … n_Routines

Подякували: Romanvolja1

3

Re: OpenDialog у делфі

Я ще підкажу: є функція для зміни розширення. Передаєте їй пустий рядок і отримуєте назву без розширення.

4

Re: OpenDialog у делфі

переглянув:
ExtractFileDir - можна записати диск
ExtractFileDrive - шлях до каталогу
ExtractFileExt - розширення файлу
ExtractFileName - ім'я + розширення
ExtractFilePath - шлях до файлу

та на жаль щоби записати саме ім'я файлу без розширення там не має

зате багато іншого знайшов тому щиро вам дякую що підказали де шукати.

5

Re: OpenDialog у делфі

GetFileNameWithoutExtension

6

Re: OpenDialog у делфі

Torbins написав:

Я ще підкажу: є функція для зміни розширення. Передаєте їй пустий рядок і отримуєте назву без розширення.


Напевно це вона : ChangeFileExt

7

Re: OpenDialog у делфі

koala написав:

GetFileNameWithoutExtension

Попробував:

  if OpenDialog1.Execute then
        begin
          Edit1.Text:=GetFileNameWithoutExtension(OpenDialog1.FileName);
        end;

При компіляції випливає помилка (Трееій рядок):
[Ошибка] RiderBase_U.pas(639): Undeclared identifier: 'GetFileNameWithoutExtension'

8

Re: OpenDialog у делфі

Телепатично здогадуюсь, що у вас застара Delphi.
Тоді шукайте останню крапку ручками (Pos) і видаляйте все від неї і до кінця.

9

Re: OpenDialog у делфі

Romanvolja написав:

Напевно це вона : ChangeFileExt

Саме її і мав на увазі.

koala написав:

GetFileNameWithoutExtension

Чудова знахідка  *THUMBSUP*

Romanvolja написав:

Попробував:

  if OpenDialog1.Execute then
        begin
          Edit1.Text:=GetFileNameWithoutExtension(OpenDialog1.FileName);
        end;

При компіляції випливає помилка (Трееій рядок):
[Ошибка] RiderBase_U.pas(639): Undeclared identifier: 'GetFileNameWithoutExtension'

Це класова функція, тому її треба отак юзати:

Edit1.Text := TPath.GetFileNameWithoutExtension(OpenDialog1.FileName);

І в юзес має бути юніт IOUtils. Це все якщо у вас Delphi XE2 або новіша.

Подякували: koala1

10

Re: OpenDialog у делфі

Всім щиро вдячний за допомогу.

Проблема вирішена ось так:

TitleFile_Ed.Text :=ChangeFileExt(ExtractFileName(ModulA_DMd.OpenDialog1.FileName), '');

Це також хороше рішення, але делфі-7 застаріла і його не підтримує:

Edit1.Text := TPath.GetFileNameWithoutExtension(OpenDialog1.FileName);

11

Re: OpenDialog у делфі

Скажіть будь ласка - а у чому сенс користуватися IDE яка застаріла вже 15 років тому? От мені просто цікаво? Ви не вивчаєте алгоритми (а делфя - це найгірше що можна придумати). Ви відпрацьовуєте для себе поганий стиль кодування (делфі та дебілдер - це найкраще для цього) - поясніть будь ласка навіщо? Тим більше що на сайті компанії можна завантажити бескоштовну версію сучасного компілятора. (і так - я за весь свій стаж як розробник, а це більше двадцяти років, я починав працювати в хакерских командах ще за царя панька, я АЖ ТРИЧИ зустрічав вимогу у вакансіях - "знання Delphi/BCB" - але у розділі "бажано"). У чому сенс?

12

Re: OpenDialog у делфі

varkon
В школі вчили Паскаль.