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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 22:19   #1
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию Проверка на сущестование файла с названием из русских символов

Работаю WINAPI C++.
я создаю файлы .тхт . подписеваю их по руски. Появляется проблема .Примеру создал файл Техт.тхт. второй создаю техт.тхт. Второй заменяет первый все данные теряются.
пытаюс проверить существующий из создаваемым.
английский без проблем , а вот руский проблема.
Код:
                                          com=0;
                                             lstrcpy(name2,pFileData.cFileName);
				//name2 существующий файл
				//name создаваем файл
				wcsupr(name2);
				wcsupr(name);
				if(wcswcs(name2,name))
				{
				con=1;
				}
                                           return con;
Как заставить руский техт перейти на верхний регистер?
evgenrpo вне форума Ответить с цитированием
Старый 09.06.2009, 23:08   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Попробуйте средствами windows создать такие файлы... и сами увидите ответ на свой вопрос

***
жи-ши - пишИ с буквой "И", не забывайте =)
Uguu~

Последний раз редактировалось __STDC__; 09.06.2009 в 23:14.
__STDC__ вне форума Ответить с цитированием
Старый 09.06.2009, 23:14   #3
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
Попробуйте средствами windows создать такие файлы... и сами увидите ответ на свой вопрос
windows говорит файл с таким именем у же существует. По руски с разным регистром писал.
Что то я не
evgenrpo вне форума Ответить с цитированием
Старый 09.06.2009, 23:26   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

я пытаюсь сказать, что файл перезаписывается, потому что имена считаются эквивалентными... а проверка у вас не сработает, потому что строки не одинаковы...
Код:
strcmp("Текст","текст");
вернет -1

приводите строки к верхнему регистру.. например с помощью toupper() и сравнивайте... наверное так.. или что вы имели ввиду?

***
или еще есть strupr() в string.h
Uguu~

Последний раз редактировалось __STDC__; 09.06.2009 в 23:38.
__STDC__ вне форума Ответить с цитированием
Старый 09.06.2009, 23:45   #5
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Я имел ввиду чтоб нельзя было создать файл с таким именем, чоб пользователь знал что файл с таким именем уже существует . Сейчас пробую через CreateFile говорят она может все
evgenrpo вне форума Ответить с цитированием
Старый 10.06.2009, 00:13   #6
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Какой я .........
Просто нада было сделать проверку.
так
Код:
FILE *fil;
	fil = fopen(name,"r");
	if(!fil)
	{
	cout<<"no"<<endl;
	}
	else
	{
	cout<<"Yes"<<endl;
	fclose(fil);
	}
или так
Код:
	HANDLE hFile; 
 
hFile = CreateFile(name,                  
                   GENERIC_READ,          
                   FILE_SHARE_READ,       
                   NULL,                  
                   OPEN_EXISTING,         
                   FILE_ATTRIBUTE_NORMAL, 
                   NULL);                 
 
if (hFile != INVALID_HANDLE_VALUE) 
{ 
   
    return 0;
}
else
{
CloseHandle(hFile);
return 1;
}
и Не нужно переводить ни в какой регистер.
А вобще есть функции перевода из ниж в верхний регистер.Только руский текст?

Последний раз редактировалось evgenrpo; 10.06.2009 в 00:15.
evgenrpo вне форума Ответить с цитированием
Старый 10.06.2009, 09:34   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

if you are using VS C++ I think you can just using Unicode Characters in preferences of the IDE and use String class and wchar_t. As __STDC__ said before.

Если вы используите VS C++ Я думаю вы можете просто использовать Unicode Символы в настройках IDE и использовать класс String и wchar_t. Как __STDC__ сказал до этого.
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка символов HTL Общие вопросы Delphi 6 31.03.2009 12:55
Проверка правильности ввода символов LLIypLLIyH Помощь студентам 7 22.07.2008 19:30
Проверка ввода символов Raz0r Помощь студентам 2 06.11.2007 14:16
Подсчёт русских букв в строках файла гера Помощь студентам 1 25.04.2007 01:19