Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа состроками

52K
11 ноября 2009 года
kleon
4 / / 09.11.2009
Помогите решить елементарную проблему. Давно на buildere не програмировал и пришлось

Как сделать красиво? Какие функции использовать

Есть строка

namefile.txt

чтоб в переменую A получить namefile

потом x=a+".flg";
а y=a+".avi";

Как правильно делается?
12K
11 ноября 2009 года
Ghox
297 / / 26.07.2009
Как вариант - класс string из STL использовать, из него - функцию substr и length, и в нем же перегружена операция +:
 
Код:
#include <string>
using namespace std;

int main()
{
    string filename1 = "namefile.txt";
    string filename2 = filename1.substr(0, filename1.length() - 3) + "flg";
    string filename3 = filename1.substr(0, filename1.length() - 3) + "avi";
}
288
11 ноября 2009 года
nikitozz
1.2K / / 09.03.2007
Цитата: Ghox
 
Код:
#include <string>
using namespace std;

int main()
{
    string filename1 = "namefile.txt";
    string filename2 = filename1.substr(0, filename1.length() - 3) + "flg";
    string filename3 = filename1.substr(0, filename1.length() - 3) + "avi";
}



А если со временем "namefile.txt" изменится на ""namefile.in", а то и вообще будет юзверем вводится. find_last_of кошернее.

upd.: Чего-то я придираюсь. :)

12K
11 ноября 2009 года
Ghox
297 / / 26.07.2009
Цитата: nikitozz
А если со временем "namefile.txt" изменится на ""namefile.in", а то и вообще будет юзверем вводится. find_last_of кошернее.

upd.: Чего-то я придираюсь. :)


Ну в общем случае конечно да - если расширение может быть любой длины то надо что-то вроде find_last_of использовать (а также корректно обрабатывать случай когда расширения вообще нет). Но автор такого требования не выдвигал, по крайней мере я так понял. Потому и дал такой пример. Если нужен общий вариант - то пусть он это уточняет, а по хорошему - пусть сам читает про string и что в нём можно делать :)

386
11 ноября 2009 года
newcss
297 / / 05.04.2005
Цитата: kleon

namefile.txt

чтоб в переменую A получить namefile
?



 
Код:
AnsiString file_name = file.SubString(0,file.LastDelimiter("."));

попробуй так
25K
11 ноября 2009 года
San_
42 / / 03.10.2007
Цитата:
ExtractFileExt

Returns the extension portions of a file name.

ExtractFileName

Extracts the name and extension parts of a file name.


а это не подойдет ? ;)

14
12 ноября 2009 года
Phodopus
3.3K / / 19.06.2008
ChangeFileExt() должен быть в билдере. Без промежуточной переменной тогда:
 
Код:
x = ChangeFileExt("namefile.txt", ".flg");
y = ChangeFileExt("namefile.txt", ".avi");

Если я верно понял что требуется
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог