Russian Qt Forum
Ноябрь 27, 2024, 02:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Quoted string  (Прочитано 3443 раз)
QuAzI
Гость
« : Декабрь 13, 2010, 18:11 »

Есть ли какой-нибудь Escape-код для \" или функция, помещающая строку в кавычки?
А то на винде почему-то если передавать маску файлов когда нужны все в виде * перебор файлов не работает. Если передать в кавычках "*", то на ура. '*' не подходит.
Пробовал \" \q \Q - ничего не подошло.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Декабрь 13, 2010, 19:16 »

ничё не понял. где это нужно? В коде Си/Си++?

>>А то на винде почему-то если передавать маску файлов
куда передавать?
« Последнее редактирование: Декабрь 13, 2010, 19:18 от lit-uriy » Записан

Юра.
twp
Гость
« Ответ #2 : Декабрь 13, 2010, 19:28 »

Функции такой нет. Но странно почему не работает \"
Может что-то не так используется?
Такой код сработает?

Код:
QString s = QLatin1String("\"%1\"");
QString filter = s.agr(mask);
Записан
QuAzI
Гость
« Ответ #3 : Декабрь 14, 2010, 01:10 »

Внезапно не катит такой код
Код:
    findparam << "\"*\"" << dir ;    
    proc->start(findproc, findparam );   
Но зато без малейших проблем
Код:
    QString mask("\"*\"");
    findparam << mask << dir ;   
    proc->start(findproc, findparam );   
Записан
Fat-Zer
Гость
« Ответ #4 : Декабрь 14, 2010, 01:15 »

Внезапно не катит такой код
Код:
    findparam << "\"*\"" << dir ;    
    proc->start(findproc, findparam );   
Но зато без малейших проблем
Код:
    QString mask("\"*\"");
    findparam << mask << dir ;   
    proc->start(findproc, findparam );   
Код:
    findparam << QString("\"*\"") << dir ;    
    proc->start(findproc, findparam );   
и ещё к первому сообщению:
"*" - строка
'*' - символ
« Последнее редактирование: Декабрь 14, 2010, 01:19 от Fat-Zer » Записан
QuAzI
Гость
« Ответ #5 : Декабрь 16, 2010, 01:09 »

На ломанном буржуйском удалось найти правду quote in command prompts
Цитировать
Filename globbing

Wildcards on the command-line are expanded by the command-line interpreter. If you wish to disable this filename globbing, then add

    int _CRT_glob = 0;

to the beginning of the main program file.
Хотя я уже извратился. В вызывающей программе молочу "\"*\"" и получаю на входе второй программы \"*\" (точнее тут ещё один прикол - в юнихах "*", а в винде \"*\") после чего через replace душу \"  и уже итоговая строчка нормально хавается дальше по коду.
Положить в строку "*" (именно в таком виде, без экранирующих слешей) под виндой не удалось. Зато не закрытую двойными кавычками маску второе приложение без int _CRT_glob = 0 превращает в список файлов текущей директории - специфика gcc.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.