Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2009, 12:06   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как изменить расширение файла

Как изменить расширение. Пользуюсь стандартной функцией

ChangeFileExt('test.txt','.csv');

А работать не хочет. Может что-то не так делаю?

Последний раз редактировалось Dux; 25.08.2009 в 12:50.
Dux вне форума Ответить с цитированием
Старый 25.08.2009, 12:17   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Функция ChangeFileExt изменяет расширение файла. Имя файла задаётся полностью, через запятую задаётся новоё расширение.

А переименовать попробуй Паскалевской функцией Rename(var f, newname: string);
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 25.08.2009, 12:24   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Пользуюсь стандартной функцией

ChangeFileExt('test.txt','.csv');

А работать не хочет. Может что-то не так делаю?
Вы остальной код дописать забыли. Программы не могут сосотоять из вызова одной функции.
MaTBeu вне форума Ответить с цитированием
Старый 25.08.2009, 12:51   #4
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Тему неправильно указал. Надо изменить расширение..
MaTBeu: все правильно указано, где вы увидели ошибку в названии темы?
Спасибо

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Вы остальной код дописать забыли. Программы не могут сосотоять из вызова одной функции.
Так это я и хотел спросить.. чего недостает? Кинул кнопку на форму, а при нажатии в обработчике событий OnClick записал:
ChangeFileExt('test.txt','.csv');

В корневой директории лежит файл test.txt, однако расширение меняться не хочет..

Последний раз редактировалось Stilet; 25.08.2009 в 13:06.
Dux вне форума Ответить с цитированием
Старый 25.08.2009, 12:57   #5
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Нужно указывать ПОЛНЫЙ ПУТЬ к файлу...
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 25.08.2009, 13:03   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Указал

Код:
var sPath : string;
begin
GetDir(0,sPath);
ShowMessage(sPath);
ChangeFileExt(sPath+'\test.txt','.csv');
end;
Все-равно не работает
Dux вне форума Ответить с цитированием
Старый 25.08.2009, 13:07   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А что простое переименование файла уже не в моде?
Код:
RenameFile('C:\temp\plot.log','C:\temp\plot.txt');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2009, 13:08   #8
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что простое переименование файла уже не в моде?
Код:
RenameFile('C:\temp\plot.log','C:\temp\plot.txt');
Просто пытаюсь понять почему ChangeFileExt не работает..
Dux вне форума Ответить с цитированием
Старый 25.08.2009, 13:12   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

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

Код:
function ChangeFileExt(const FileName, Extension: string): string;
var
  I: Integer;
begin
  I := LastDelimiter('.' + PathDelim + DriveDelim,Filename);
  if (I = 0) or (FileName[I] <> '.') then I := MaxInt;
  Result := Copy(FileName, 1, I - 1) + Extension;
end;
Что никаких операций с файлами тут нет.
Так что не парься. Это функция для работы со строками а не с файлами.

P.S. кстати хелп еще не отменили, и там это все написано четко
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2009, 13:16   #10
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да чеж не работает. все работает, но только эта функа просто изменяет в строке, которые ты ей передал символы, а не в самом файле.
Интересно получается, а в книге "Программирование в Дельфи 7" эта функция описывается как функция для работы с файлами...
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить формат файла Манжосов Денис :) Операционные системы общие вопросы 5 29.12.2009 17:56
Расширение файла Александр! Операционные системы общие вопросы 9 21.02.2009 16:37
Как изменить значок .ехе файла Delphi? Evgenii Общие вопросы Delphi 4 04.02.2009 15:45
Ошибка "Неизвестное расширение файла" prog38 Помощь студентам 25 25.07.2008 10:18
Как зарегить новое расширение в Windows XP dagarik Windows 1 22.10.2007 20:27