Russian Qt Forum
Ноябрь 24, 2024, 20:36
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Замена символов имени файла
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Замена символов имени файла (Прочитано 8400 раз)
ruzik
Гость
Замена символов имени файла
«
:
Июнь 01, 2012, 21:47 »
Здравствуйте, существует следующая задача:
Нужно скачать иконку с сайта и сохранить её, именем должно быть имя сайта. Но проблема в точке в адресе сайта из-за которой возникает проблема сохранения иконки с таким именем. Соответственно нужно как-то заменить эти точки(восстанавливать имя сайта из названия иконки также требуется).
Но заменив на символы типа -_ и тд, можно добиться неправильной трактовки, например иконки этих сайтов будут совпадать:
forum-site.com
forum.site.com
Есть ли такой символ, который может быть включен в название иконки, но не может быть частью адреса сайта?
Должно работать на Windows, Mac Os X и Linux.
Заранее спасибо!
Записан
ruzik
Гость
Re: Замена символов имени файла
«
Ответ #1 :
Июнь 01, 2012, 21:56 »
Символ уже придумал - левая или правая скобка.
Теперь вопрос на всех ли трех системах, указанных мною, скобка может быть частью имени файла.
На Windows - да может.
А вот Mac Os X и Linux возможности проверить нет, не подскажите как там с этим дело?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Замена символов имени файла
«
Ответ #2 :
Июнь 01, 2012, 22:58 »
Цитата: ruzik от Июнь 01, 2012, 21:47
Но проблема в точке в адресе сайта из-за которой возникает проблема сохранения иконки с таким именем.
Цитировать
bool QImage::save ( const QString & fileName, const char *
format
= 0, int quality = -1 ) const
Saves the image to the file with the given fileName, using the given image file format and quality factor. If format is 0, QImage will attempt to guess the format by looking at fileName's suffix.
The quality factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.
Returns true if the image was successfully saved; otherwise returns false.
Записан
andrew.k
Гость
Re: Замена символов имени файла
«
Ответ #3 :
Июнь 01, 2012, 23:53 »
лучше не морочай себе голову и сохраняй как тебе удобно.
А в отдельный файл пиши соответствие имен файлов и имени сайта.
somesite.com=93280234.png
some-site.com=92402374.png
А твой подход это костыли какие-то.
Записан
ruzik
Гость
Re: Замена символов имени файла
«
Ответ #4 :
Июнь 02, 2012, 10:19 »
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Замена символов имени файла
«
Ответ #5 :
Июнь 02, 2012, 10:31 »
Цитата: ruzik от Июнь 02, 2012, 10:19
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?
В OSX может. Расширение часто игнорируется если тип файла не ноль. Лучше не связываться с изучением деталей различных файловых систем, а хранить имя сайта в хеше, как уже сказали выше. Обойдется дешевле
Записан
mutineer
Гость
Re: Замена символов имени файла
«
Ответ #6 :
Июнь 02, 2012, 11:26 »
Цитата: ruzik от Июнь 02, 2012, 10:19
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?
В линуксе сколько угодно точек может быть в имени файла, а может и не быть вообще. Никаких проблем это не вызовет (разве что точка в начале имени файла трактуется как маркер "скрытый файл")
«
Последнее редактирование: Июнь 02, 2012, 14:00 от mutineer
»
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Замена символов имени файла
«
Ответ #7 :
Июнь 02, 2012, 13:05 »
Цитата: mutineer от Июнь 02, 2012, 11:26
В линуксе сколько угодно точек может быть в имени файла, а может и не быть вообще. Никаких проблем это не вызовет (разве что точка в начале имент файла трактуется как маркер "скрытый файл")
Мало того в имени файла могут быть вообще любые символы - в unix-e никаких ограничений нет.
Записан
Qt 5.11/4.8.7 (X11/Win)
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Замена символов имени файла
«
Ответ #8 :
Июнь 02, 2012, 13:52 »
Цитата: GreatSnake от Июнь 02, 2012, 13:05
Мало того в имени файла могут быть вообще любые символы - в unix-e никаких ограничений нет.
Даже разделитель каталогов?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Замена символов имени файла
«
Ответ #9 :
Июнь 02, 2012, 14:44 »
Цитата: LisandreL от Июнь 02, 2012, 13:52
Даже разделитель каталогов?
Поправочка: за исключением '/' и '\0'.
Записан
Qt 5.11/4.8.7 (X11/Win)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Замена символов имени файла
«
Ответ #10 :
Июнь 02, 2012, 17:22 »
слэш в мак ос вроде может быть в имени файла (наверняка смогу сказать попозже)
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Замена символов имени файла
«
Ответ #11 :
Июнь 02, 2012, 17:30 »
Цитата: kambala от Июнь 02, 2012, 17:22
слэш в мак ос вроде может быть в имени файла (наверняка смогу сказать попозже)
Может для файловой системы, но потом возникают трудности с парсингом полного имени. А вот двоеточие нельзя, оно раньше было разделителем пути (до того как поперся posix)
Записан
ruzik
Гость
Re: Замена символов имени файла
«
Ответ #12 :
Июнь 02, 2012, 21:49 »
Понятно, спасибо за помощь!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...