Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли как-то извлечь имя файла? Без его расширения. 
V
    Опции темы
EvilProgrammer
  Дата 1.8.2006, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.7.2006

Репутация: нет
Всего: нет



 smile 
Можно ли как-то извлечь имя файла без его расширения?
PM MAIL   Вверх
DragonFire
Дата 1.8.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Код

Function ExtractFile(FileName:String):String;
Var I:Integer;
      S:String;
Begin
  S:='';
  For I:=0 to Length(FileName) do begin
    If FileName[I]='.' then Result:=S;
    S:=S+FileName[I];
  End;
End;

Вроде должно работать - отсекает расширение просто у имени файла... можно еще так сделать:
Код

Function ExtractFile(var FileName:String):String;
Var I:Integer;
      S:String;
Begin
  S:='';
  FileName:=ExtractFileName(FileName);
  For I:=0 to Length(FileName) do begin
    If FileName[I]='.' then Result:=S;
    S:=S+FileName[I];
  End;
End;

Код не проверял, но вроде все ок....


--------------------
PM MAIL ICQ   Вверх
Albinos_x
Дата 1.8.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



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

так проще и надёжней:
Код

Function ExtractFileNemeNoEx(FileName:String):String;    
Var n:Integer;    
Begin    
result:=ExtractFileName(FileName);
n:=LastDelimiter('.',result);
if n>0 then
   delete(result,n,length(result)-n+1);
End;


вообще это вопрос из раздела:
Delphi: Общие вопросы

там он не раз поднимался...

Это сообщение отредактировал(а) Albinos_x - 1.8.2006, 12:35


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Snowy
Дата 1.8.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

FileName := ExtractFileName(Filename);
FileName := copy(FileName, 1, Length(FileName) - Length(ExtractFileExt(FileName)));

PM MAIL   Вверх
Albinos_x
Дата 1.8.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



тоже вариант smile 


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Girder
Дата 1.8.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



extractfilename(ChangeFileExt(ParamStr(0),'')) smile 


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
kostas
Дата 1.8.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.7.2006

Репутация: 3
Всего: 4



таки есть стандатные средства:
Код

ChangeFileExt(имя файла, '');
и вот еще
ExtractFileExt(имя файла) //для вытаскивания только расширения

PM ICQ   Вверх
Yanis
Дата 1.8.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Последний пост по ссылке ниже:
http://forum.vingrad.ru/index.php?showtopic=82817


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
DragonFire
Дата 1.8.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Ну набралось  smile  
Но я был первым  smile


M
Girder
Не оффтопь!



--------------------
PM MAIL ICQ   Вверх
EvilProgrammer
Дата 2.8.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.7.2006

Репутация: нет
Всего: нет



Спасибо огромное всем. smile
Теперь конвертер *.xls 2 *.txt работаети по человекчески.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1181 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.