Как получить имя файла используя регулярное выражение?
Есть путь к файлу ,например такой «D:/QT projects/ConnectDB/Vlad.jpg»,как при помощи регулярного выражения получить Vlad.jpg?
Отслеживать
задан 8 ноя 2017 в 21:24
464 1 1 золотой знак 5 5 серебряных знаков 25 25 бронзовых знаков
Для этого не нужно регулярное выражение, достаточно функций strrchr и substr или их аналогов
8 ноя 2017 в 21:26
что-то в qt не получается найти substr
8 ноя 2017 в 21:49
Я бы сильно удивился, если бы ничего аналогичного там не было.
8 ноя 2017 в 21:53
Я не нашел,к сожалению(
8 ноя 2017 в 21:55
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Судя по всему, сработает такое:
QString fileName = QFileInfo("D:/QT projects/ConnectDB/Vlad.jpg").fileName();
Отслеживать
ответ дан 8 ноя 2017 в 22:26
206k 28 28 золотых знаков 291 291 серебряный знак 526 526 бронзовых знаков
Вот извращенный 🙂 способ, заодно знакомящий с алгоритмами STL
const char sz [] = "dir1\\dir2\\dir3\\dir4\\name.ext"; std::cout (sz + strlen (sz)), std::reverse_iterator (sz), '\\').base ();
Если использовать std::string, то все попроще. Пример для Винды, у Вас, видимо, слеш другой, замените на поиск ‘/’.
Отслеживать
ответ дан 8 ноя 2017 в 22:18
Alex Titov Alex Titov
1,215 7 7 серебряных знаков 8 8 бронзовых знаков
- c++
- qt
- qtcreator
- path
- qregexp
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как получить имя файла в виде строки?
Я делаю перебор файлов с помощью readdir и каждый встречаемый файл мне нужно получить в виде строки. Просто вписать d_name не получается. как это можно сделать?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как получить в виде строки имя самой переменной?
например объявлена переменная string name = "Ivanov"; Как получить в виде переменой само имя.
Из строки, содержащей полное имя файла, получить имя файла
Помогите Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь).
получить имя файла или как вычесть строку из строки)
всем привет. Вот чето я затупил. У меня есть строка полный путь к файлу и строка которая.

Как в JS получить содержимое HTML файла в виде строки
Здравствуйте. Как можно в JS получить содержимое HTML файла в текстовом формате. В этом примере.
438 / 316 / 126
Регистрация: 18.07.2017
Сообщений: 1,425
Сообщение от Джон22 
Просто вписать d_name не получается.
Код в Visualстудию
Регистрация: 09.04.2019
Сообщений: 15
вроде теперь должен строку делать но выдаёт ошибку сигментации.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
#include #include #include #include #include #include #include #include long int findSize(const char d_name[128]){ // function for size info ****** struct stat st; if(stat(d_name,&st)==0) return(st.st_size); else return -1; } /* reverse: переворачиваем строку s на месте */ void reverse(char s[]) { int i, j; char c; for (i = 0, j = strlen(s)-1; ij; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } } void itoa(int n, char s[]){ int i, sign; if((sign = n) 0) n = -n; i = 0; do{ s[i++] = n % 10 + '0'; }while((n /= 10) > 0); if(sign 0) s[i++] = '-'; s[i] = '\0'; reverse(s); } int main(){ DIR *dir;//************ struct dirent *sd;//*********** long int size = 0; char pr = '_'; dir = opendir("."); if(dir == NULL){ printf("Japan"); exit(1); } char chc[128]; while((sd=readdir(dir)) != NULL){ size = findSize(sd->d_name); itoa(size,chc); int ii; int nn; for(ii=0;ii strlen(sd->d_name);ii++){ if(isalpha(sd->d_name[ii])) nn++; } // char cd[128]; char *ccd; ccd = sd->d_name; for(ii=0;;ii++){ ccd[ii] = cd[ii]; if(ii == nn) break; } /*char ddr[128]; for(ii=0;;ii++) ddr[ii] = cd[ii]; if(ii == nn) break; >*/ // int n = 0; char hh2[128]; for(ii=0;;ii++){ hh2[ii] = cd[ii]; if(ii == nn) break; } int i; int f = 0; for(i=0;i strlen(hh2);i++){ if(isalpha(hh2[i])) n++; } char hh22[128]; char hh1[128]; for(i=0;;i++){ hh22[i] = hh2[i]; if(hh22[i] == '_') break; } i++; for(i=i;;i++){ hh1[f] = hh2[i]; f++; if(i==n) break; } char hg[128]; for(i=0;;i++){ hg[i] = hh22[i]; if(hg[i] == '_') break; } //hg = strcat(hh22, chc); //hg = strcat(hg, hh1); // if(size != -1) printf("%s",hg); //rename(sd->d_name, hg); else printf("Vludik\n"); } closedir(dir); return 0; }
C++ Вопрос Как узнать имя исполняемого файла? [РЕШЕНО]
Нужно именно имя, а не фулл путь + имя.
То есть: Нужно «test.exe», а не «C:\User\test.exe».
Начинающий
Статус Оффлайн Регистрация 15 Авг 2021 Сообщения 15 Реакции [?] 4 Поинты [?] 1K
Нужно именно имя, а не фулл путь + имя.
То есть: Нужно «test.exe», а не «C:\User\test.exe».
Насколько помню, первый элемент argv[]
Пользователь
Статус Оффлайн Регистрация 17 Июл 2021 Сообщения 458 Реакции [?] 115 Поинты [?] 7K
из argv[0] ты можешь получить имя файла
Всем Рептилойдам — Рен ТВ
Пользователь
Статус Оффлайн Регистрация 1 Фев 2020 Сообщения 542 Реакции [?] 92 Поинты [?] 0
из argv[0] ты можешь получить имя файла
Можно ли объявить его глобально ?
Пользователь
Статус Оффлайн Регистрация 17 Июл 2021 Сообщения 458 Реакции [?] 115 Поинты [?] 7K
Можно ли объявить его глобально ?
ну объяви глобальную переменную и через мейн задай ей значение
Всем Рептилойдам — Рен ТВ
Пользователь
Статус Оффлайн Регистрация 1 Фев 2020 Сообщения 542 Реакции [?] 92 Поинты [?] 0
ну объяви глобальную переменную и через мейн задай ей значение
Для просмотра содержимого вам необходимо авторизоваться.
Пользователь
Статус Оффлайн Регистрация 17 Июл 2021 Сообщения 458 Реакции [?] 115 Поинты [?] 7K
Скрытое содержимое
Для просмотра содержимого вам необходимо авторизоваться.
Web developer / designer
Пользователь
Статус Оффлайн Регистрация 15 Ноя 2020 Сообщения 406 Реакции [?] 124 Поинты [?] 2K
Если тебе ещё не помогли, можешь просто сделать сплит строки и всё.
Всем Рептилойдам — Рен ТВ
Пользователь
Статус Оффлайн Регистрация 1 Фев 2020 Сообщения 542 Реакции [?] 92 Поинты [?] 0
Скрытое содержимое
Для просмотра содержимого вам необходимо авторизоваться.
Пользователь
Статус Оффлайн Регистрация 12 Фев 2020 Сообщения 385 Реакции [?] 96 Поинты [?] 0
в чем проблема убрать лишнее? хоть на сервере. хоть на клиенте. религия не позволяет?
Energy Reload
Забаненный
Статус Оффлайн Регистрация 20 Авг 2017 Сообщения 1,206 Реакции [?] 331 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
char buffer[MAX_PATH];
GetModuleFileName(NULL,buffer,MAX_PATH);
MessageBox(buffer);
Всем Рептилойдам — Рен ТВ
Пользователь
Статус Оффлайн Регистрация 1 Фев 2020 Сообщения 542 Реакции [?] 92 Поинты [?] 0
char buffer[MAX_PATH];
GetModuleFileName(NULL,buffer,MAX_PATH);
MessageBox(buffer);

Пользователь
Статус Оффлайн Регистрация 17 Июл 2021 Сообщения 458 Реакции [?] 115 Поинты [?] 7K
Скрытое содержимое
Для просмотра содержимого вам необходимо авторизоваться.
Всем Рептилойдам — Рен ТВ
Пользователь
Статус Оффлайн Регистрация 1 Фев 2020 Сообщения 542 Реакции [?] 92 Поинты [?] 0
Скрытое содержимое
Для просмотра содержимого вам необходимо авторизоваться.
Участник
Статус Онлайн Регистрация 5 Окт 2017 Сообщения 776 Реакции [?] 171 Поинты [?] 6K
string GetProcessName()
Последнее редактирование: 4 Ноя 2021
average jne main macros abuser
Начинающий
Статус Оффлайн Регистрация 30 Май 2021 Сообщения 80 Реакции [?] 28 Поинты [?] 0
жесть югейм в гугле нашёл, а ответ на вопрос нет
жесть пастер клоуна мне поставил
Пользователь
Статус Оффлайн Регистрация 17 Июл 2021 Сообщения 458 Реакции [?] 115 Поинты [?] 7K
Скрытое содержимое
Нет, это количество символов названия файла.
Energy Reload
Забаненный
Статус Оффлайн Регистрация 20 Авг 2017 Сообщения 1,206 Реакции [?] 331 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
char * GetMyNameExe() <
char ExeName[MAX_PATH];
char path[MAX_PATH];
char dr[MAX_PATH];
char dir[MAX_PATH];
char name[MAX_PATH];
char tmp[MAX_PATH];
GetModuleFileNameA(NULL, path, MAX_PATH);
_splitpath(path, dr, dir, name, tmp);
_makepath(ExeName, NULL, NULL, name, tmp);
return ExeName;
>
Как получить имя файла c
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.
Модераторы: ElcnU
‘> Как получить имя файла без пути?
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
Сообщ. #1 , 20.03.06, 12:52
Full Member
Рейтинг (т): нет
Есть некоторое полное имя файла — myfilename типа char* , в котором присутствуют путь, собственно имя и расширение файла. Как мне с помощью WinAPI получить из myfilename имя файла с расширением, но без пути?
Сообщ. #2 , 20.03.06, 13:05
Unregistered
PathFindFileName
PathFindExtension
Сообщ. #3 , 20.03.06, 13:08
Unregistered
_splitpath
Сообщ. #4 , 20.03.06, 14:15

Рейтинг (т): нет
char* pName = szPathName + strlen(szPathName);
for(;*pName != ‘\\’;pName—);
Сообщ. #5 , 20.03.06, 14:52

Senior Member
Рейтинг (т): 58
вот такой еще изврат
HANDLE hfile;
WIN32_FIND_DATA fd;
hfile = FindFirstFile( полный путь к файлу, &fd );
if (hfile != INVALID_HANDLE_VALUE)
FindClose(hfile);
в fd.cFileName будет то, что надо.
а заодно, провериш файл на существование