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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2016, 21:20   #1
Girei
Пользователь
 
Аватар для Girei
 
Регистрация: 22.10.2013
Сообщений: 72
Злость Изменение расширения файла

Пытаюсь поменять расширение файла, используя rename. Не могу выкупить, что я делаю не так.
Код:
void CMFCApplication1Dlg::OnBnClickedButton3() //disasm
{
		CFileDialog openpic(true);
		openpic.m_pOFN->lpstrFilter=
			"All files (*.*)\0*.*\0 Image files (*.jpeg; *.bmp; *jpg; *.png)\0*.jpeg;*.bmp;*.jpg;*.png\0";
		TCHAR defdire[] = "C:";
		openpic.m_pOFN->lpstrInitialDir = defdire;
		if (openpic.DoModal() == IDOK)
		{
			CString Ext = openpic.GetFileExt(); 
			if (Ext != "jpeg" && Ext != "jpg" && Ext != "bmp" && Ext != "png")
			{
				MessageBox("Incorrect file format","Error",MB_ICONERROR);
			}
			else
			{
				pic1 = openpic.GetPathName();
				CString sz = strrchr(pic1, '.');
				CString rnmd = pic1.Left(pic1.GetLength()-sz.GetLength());
				pic1.Delete(rnmd.GetLength(),sz.GetLength());
				
				rnmd += ".rar";
				MessageBox(rnmd);
				int res =  rename(pic1,rnmd);

								
			}
		}
}
Girei вне форума Ответить с цитированием
Старый 04.03.2016, 22:11   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Не могу выкупить, что я делаю не так.
а получается-то чего?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.03.2016, 22:17   #3
Girei
Пользователь
 
Аватар для Girei
 
Регистрация: 22.10.2013
Сообщений: 72
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а получается-то чего?
Расширение файла не меняется. был, напимер, 122.jpeg должно было стать 122.rar. На деле - нет никаких изменений
Girei вне форума Ответить с цитированием
Старый 04.03.2016, 22:22   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

поставь врейк вот тут
Код:
int res =  rename(pic1,rnmd);
и посмотри значения переменных и результат функции rename().
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.03.2016, 22:38   #5
Girei
Пользователь
 
Аватар для Girei
 
Регистрация: 22.10.2013
Сообщений: 72
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
поставь врейк вот тут
Код:
int res =  rename(pic1,rnmd);
и посмотри значения переменных и результат функции rename().
Поставить что?)
rename возвращает 0, pic1 выдаёт D:/122 , rnmd возвращает D:/122.rar
Girei вне форума Ответить с цитированием
Старый 04.03.2016, 22:46   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Поставить что?)
breakpoint.
Цитата:
rename возвращает 0
в случае успеха должно быть != 0 или true.
Цитата:
pic1 выдаёт D:/122
слеш не попутал?
и есть ли на диске D файл с именем "122" (без расширения)?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.03.2016, 22:48   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

и самый главный вопрос: зачем jpeg переименовывать в rar????!!!11
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.03.2016, 23:09   #8
Girei
Пользователь
 
Аватар для Girei
 
Регистрация: 22.10.2013
Сообщений: 72
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
и самый главный вопрос: зачем jpeg переименовывать в rar????!!!11
Долгая история) http://lurkmore.to/Rarjpeg Это, если коротко.
Слеш и правда попутал.
Выдаёт успешное завершение (конструкция за if выполняется), но на диске я файла без расширения не вижу. Смотрю через TotalCMD
Файл вообще никак не меняется

Последний раз редактировалось Girei; 04.03.2016 в 23:27.
Girei вне форума Ответить с цитированием
Старый 04.03.2016, 23:31   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
http://lurkmore.to/Rarjpeg Это, если коротко.
не вижу связи с твоим случаем.
Цитата:
Выдаёт успешное завершение (конструкция за if выполняется)
я не это имел в виду, а это:
Код:
int res =  rename(pic1,rnmd);
функция rename() возвращает 0 (ошибка), т.к. не находить файл, который надо переименовать ("d:\122").
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 05.03.2016, 15:49   #10
Girei
Пользователь
 
Аватар для Girei
 
Регистрация: 22.10.2013
Сообщений: 72
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
не вижу связи с твоим случаем.

я не это имел в виду, а это:
Код:
int res =  rename(pic1,rnmd);
функция rename() возвращает 0 (ошибка), т.к. не находить файл, который надо переименовать ("d:\122").
Ошибка была в этой строчке. Вернее, в её наличии. Спасибо, разобрался, всё работает
Код:
pic1.Delete(rnmd.GetLength(),sz.GetLength());
Girei вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение расширения .dll на другое Khayzenberg Общие вопросы Delphi 3 21.02.2013 13:08
Смена расширения файла iLnes Общие вопросы Delphi 12 09.11.2011 23:41
Проверка расширения файла Михаил Юрьевич Общие вопросы Delphi 6 20.09.2009 22:22
Изменение расширения файла при каждой итерации Jack Torrance Помощь студентам 3 18.12.2007 23:24
Проверка расширения файла Mickle Общие вопросы Delphi 2 04.05.2007 16:41