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

Ваш аккаунт

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

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

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

в догонку вопрос ... про кодировку - Ansi -> Dos и обратно

1.8K
14 ноября 2002 года
DanilovYV
41 / / 14.10.2002
и так... входящий параметр для программы директория на сетевом диске... названная по-русски, то есть запускаю
file.exe t:\Клиент
а так как приложение (file.exe) консольное оно воспринимает ентот Клиент, как виндовую кодировку и не хочет никак реагировать внутри... как мне перекодировать ???

P.S. да... пытался в досовской кодировке задать название папку... так же ноль эмоций :о((
250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by DanilovYV
и так... входящий параметр для программы директория на сетевом диске... названная по-русски, то есть запускаю
file.exe t:\Клиент
а так как приложение (file.exe) консольное оно воспринимает ентот Клиент, как виндовую кодировку и не хочет никак реагировать внутри... как мне перекодировать ???

P.S. да... пытался в досовской кодировке задать название папку... так же ноль эмоций :о((


AnsiToOem
ну и обратная..

1.8K
14 ноября 2002 года
DanilovYV
41 / / 14.10.2002
Цитата:
Originally posted by Joker

AnsiToOem
ну и обратная..



хммм.. но если я перевожу таким образом... точнее функция OemToChar у меня переведенная строка не хочет соединяться с другой -
примерно так:
argv[1] = "W:\Клиент"; // входной параметр
// далее
char *t;
OemToChar(argv[1], t);

char *s = strcat(t, "\\file.exe"); //fatal error тут.... я просто указываю на файл в папке клиент

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by DanilovYV


хммм.. но если я перевожу таким образом... точнее функция OemToChar у меня переведенная строка не хочет соединяться с другой -
примерно так:
argv[1] = "W:\Клиент"; // входной параметр
// далее
char *t;
OemToChar(argv[1], t);

char *s = strcat(t, "\\file.exe"); //fatal error тут.... я просто указываю на файл в папке клиент




char* ar;
char *s;
ar = new char;
ar = "w:\\Клиент" ;
// далее
char *t = new char;
s = new char;
OemToChar(ar, t);
s = strcat((char*)t, "\\file.exe"); //fatal error тут.... я просто указываю на файл в папке клиент [/QUOTE]
Memo1->Text=(AnsiString)s;

1.8K
14 ноября 2002 года
DanilovYV
41 / / 14.10.2002
Цитата:
Originally posted by Joker



char* ar;
char *s;
ar = new char;
ar = "w:\\Клиент" ;
// далее
char *t = new char;
s = new char;
OemToChar(ar, t);
s = strcat((char*)t, "\\file.exe"); //fatal error тут.... я просто указываю на файл в папке клиент


Memo1->Text=(AnsiString)s; [/QUOTE]

ммм... дело в том, что "W:\Клиент" идет как внешний параметр, т.е. argv[1]!!
и вознкает проблема с именем папки (т.к. по-русски).. вроде как argv[1] получается виндовой кодировки, и в консольом приложении, каким является file.exe эта папка не определяется правильно....

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by DanilovYV

Memo1->Text=(AnsiString)s;



ммм... дело в том, что "W:\Клиент" идет как внешний параметр, т.е. argv[1]!!
и вознкает проблема с именем папки (т.к. по-русски).. вроде как argv[1] получается виндовой кодировки, и в консольом приложении, каким является file.exe эта папка не определяется правильно.... [/QUOTE]
Ничего не понял, в чем проблема, строка нормально переводится ?? Только тебе наоборот из дос в виндовс кодировку надо прочел фаил и айда.. и чего не так ??

1.8K
14 ноября 2002 года
DanilovYV
41 / / 14.10.2002
я сам уже ни хера не понимаю :о((

еще раз: я в командной строке ввожу
file.exe w:\Клиент -> ENTER
кодировка виндовая так ? ....

file.exe приложение консольное... обрабатывает этот путь... короче ищет файл по этому пути.... но найти не может , т.к. не может прочитьать имя папки на русском языке.... (с латинскими названиями все у-порядке).

если я смотрю WATCH то там типа
s= W:<каля-маля>\\board.exe - нужный файл...
КАК мне вместо этого <каля-маля> получить "\\Клиент" ??
250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by DanilovYV
я сам уже ни хера не понимаю :о((

еще раз: я в командной строке ввожу
file.exe w:\Клиент -> ENTER
кодировка виндовая так ? ....

file.exe приложение консольное... обрабатывает этот путь... короче ищет файл по этому пути.... но найти не может , т.к. не может прочитьать имя папки на русском языке.... (с латинскими названиями все у-порядке).

если я смотрю WATCH то там типа
s= W:<каля-маля>\\board.exe - нужный файл...
КАК мне вместо этого <каля-маля> получить "\\Клиент" ??


Ну так сделай виндовскую кодеровку, изначально видемо она у тебя таковой не является..

1.8K
14 ноября 2002 года
DanilovYV
41 / / 14.10.2002
Цитата:
Originally posted by Joker

Ну так сделай виндовскую кодеровку, изначально видемо она у тебя таковой не является..


так елы палы... как же не является если я в виндовой командной строке пишу..

ну или как это сделать ??

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by DanilovYV

так елы палы... как же не является если я в виндовой командной строке пишу..

ну или как это сделать ??


Если там виндовс кодировка то зачем ты кодировки туда сюда гоняешь все и так должно работать..
1) пРОВРЬ ПРАВИЛЬНОСТЬ КАТАЛОГА И НАЛИЧИЕ В НЕМ ФАЙЛА
2)И посмотри чего пbшtт GetLastError

И вообще призадумайся, сам.. , на форуме сидят не телепаты..

476
15 ноября 2002 года
man2002ua
218 / / 16.10.2002
выделим проблему - в командную строку программы выдается имя каталога на русском языке. При этом - необходимо в программе склеить этот каталог с именем файла и найти его/проверить существование. Так?
На чем писано? BCB5?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог