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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2018, 21:17   #1
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию Добавление к переменной текста

Добрый вечер уважаемые.
Имеется данная функция
Код:
BOOL WINAPI CopyFile(LPCTSTR lpExistingFileName,LPCTSTR lpNewFileName,BOOL bFailIfExists);
Код:
CopyFile(File,'1'+File,true);
[/CODE]
при копировании файла lpNewFileName использовать имя предыдущего файла и добавлять к нему символ '1' вначале
Код:
CopyFile(File,'1'+File,true);
В итоге при копировании никакой 1 нету...
Пропадает 40-60% имени файла, иногда вообще без расширения а просто файл png
В чем может быть проблема и как её исправить?
P.S при добавлениее (LPCTSTR )'1' - ошибка выражение должно иметь целочисленный или перечисляемый тип...
Михаил1990 вне форума Ответить с цитированием
Старый 19.05.2018, 21:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

В том, что вы фактически складываете указатели и уноситесь фиг знает куда.
1. Хотите объектный вариант делайте через string и его оператор + или append
2. Хотите более в С рамках, то семейство функции sprintf или strcat и т.д.
p51x на форуме Ответить с цитированием
Старый 20.05.2018, 10:06   #3
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
В том, что вы фактически складываете указатели и уноситесь фиг знает куда.
1. Хотите объектный вариант делайте через string и его оператор + или append
2. Хотите более в С рамках, то семейство функции sprintf или strcat и т.д.
Код:
	LPCSTR c =lpszFileName;
	LPCSTR a = "1 ";
	a += c;
error\\ выражение должно иметь целочисленный или перечисляемый тип...
Михаил1990 вне форума Ответить с цитированием
Старый 20.05.2018, 10:18   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И? Вы же сам все процетировали. Где вы там нашли:
Цитата:
Хотите более в С рамках ... и его оператор +
?
p51x на форуме Ответить с цитированием
Старый 20.05.2018, 10:25   #5
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
И? Вы же сам все процетировали. Где вы там нашли: ?
Ошибся...
Не получаеться конвертировать string в LPCSTR
Михаил1990 вне форума Ответить с цитированием
Старый 20.05.2018, 10:35   #6
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Получилось сощздавать файл с рандомным именем.
Но вот что бы к существующему типу
Код:
LPCTSTR lpszFileName
добавить 1
это проблема!
Код:
	string z = random_string(5);
LPTSTR x = new TCHAR[z.size() + 1];
    //MessageBox(NULL, lpszFileName, "Find File", MB_OK | MB_APPLMODAL);
	CopyFile(lpszFileName,	strcpy(x, z.c_str()),true);
Михаил1990 вне форума Ответить с цитированием
Старый 20.05.2018, 10:54   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Михаил1990 Посмотреть сообщение
это проблема!
Я готов поспорить, что если вы потрудитесь прочитать описание всех методов класса std::string вы найдете то, что вам нужно, в плане конверсии к LPCSTR.
waleri вне форума Ответить с цитированием
Старый 20.05.2018, 11:12   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Михаил1990 Посмотреть сообщение
добавить 1
это проблема!
И что ни один из способов не сработал?
Ни завести массив и скопировать в него 1, а потом строку lpszFileName?
Ни sprintf сформировать "%d %s" или "%s %s"?
Ни через string/wstring с + и c_str?
Ну тогда вручную циклом фор копируйте...
p51x на форуме Ответить с цитированием
Старый 20.05.2018, 11:29   #9
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Вроде бы нашел функцию StringCchCat
Но не работает,файлы не копируються вообще
Код:
TCHAR pszDest[1024] = ("1");
StringCchCat(pszDest, sizeof(pszDest), lpszFileName); 
	CopyFile(lpszFileName,	pszDest,true);
Михаил1990 вне форума Ответить с цитированием
Старый 20.05.2018, 11:44   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так что вернула StringCchCat?
Вы в курсе, что второй параметр StringCchCat в символах?
p51x на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск текста в переменной Fahman Общие вопросы Delphi 1 08.02.2014 16:06
ак переменной а присвоить значение текста amator_roma Общие вопросы C/C++ 5 14.06.2011 19:33
Добавление переменной в место номера lable! JasperCRT Общие вопросы Delphi 11 23.01.2011 13:10
Добавление текста марина никандрова Microsoft Office Excel 2 03.06.2010 11:30
Вывод в edit текста с переменной NecroSlider Общие вопросы C/C++ 4 29.07.2008 14:42