powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / GetSaveFileName - как задать имя файла при открытии?
25 сообщений из 52, страница 1 из 3
GetSaveFileName - как задать имя файла при открытии?
    #39468802
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые Гуру!

Собственно, sabj.

В аналогичном диалоговом окне в С# есть возможность задать имя файла из переменной
при открытии окна.
А в С++ , в GetSaveFileName есть такая возможность?
Мои попытки поисков в структуре не увенчались успехом.
В гугле тоже не получилось найти. (может не так запрос делал...)
Я хочу сохранять изображения из массива в фал и чтобы имя файла
при открытии окна уже было записано в соответствующее поле.

И второй вопрос, в какой кодировке должно быть имя в переменной,
чтобы оно правильно записалось на диск при условии что имена могут быть
не только на латинице , но и в кирилице , а также на иврите ...

Имена будут браться из С# в DataGridViev и передаваться в DLL C++ как string .
Приниматься будут в DLL как const wchar_t*
А в гриде имена могут быть на любом языке

Заранее всех благодарю.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39468808
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл сказать что для сохранения файла я использую API WriteFile
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39468817
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39468820
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо заполнить структуру OPENFILENAME
Гугл в помощь
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469071
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, я вообще-то обращался за помощью к Гуру.

Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN
У Гуру другая миссия.

Где лежит MSDN я и сам знаю.
И прежде чем просить помощи я всегда пытаюсь сам сначала разобраться
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469078
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitМои попытки поисков в структуре не увенчались успехом.искал без фонарика))
MSDN::OPENFILENAME structure lpstrFile
Type: LPTSTR
The file name used to initialize the File Name edit control.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469083
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych, Если у с получилось проинициализировать это поле структуры,
Не сочтите за труд,
Покажите пожалуйста всего одну строчку кода.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469094
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitПокажите пожалуйста всего одну строчку кода.с выньапи одной строчкой не получится ))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
const wchar_t *savefilename = L"Hello world.txt"; // что-то, что пришло из вне
...
OPENFILENAME ofn;
...
wchar_t filename[255]; // число взято от балды, никогда не знаешь, сколько надо зарезервировать :) сюда ведь ещё будет записан результат
wsprintf( filename, "%s", savefilename );
ofn.lpstrFile = LPTSTR( &filename );
...

как то так, не компилировал, мог наврать
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469101
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych, Простите великодушно. Вы меня не совсем правильно поняли.
Повторюсь:
Если у Вас получится не только скомпилировать свой код, но и при открытии окна диалога
в поле имя файла обнаружить Hello world.txt, тогда я с благодарностью сниму шляпу
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469105
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitЕсли у Вас получится не только скомпилировать свой код, но и при открытии окна диалога
в поле имя файла обнаружить Hello world.txt, тогда я с благодарностью сниму шляпуну ё-моё
Код: plaintext
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.
// getsavefilename_w32.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include "resource.h"
#include <Commdlg.h>

int APIENTRY _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
	UNREFERENCED_PARAMETER( hPrevInstance );
	UNREFERENCED_PARAMETER( lpCmdLine );

	OPENFILENAME ofn;
	const wchar_t *hello = L"hello world.txt";

	// a another memory buffer to contain the file name
	wchar_t szFile[ 255 ];
	wsprintf( szFile, L"%s", hello );

	// open a file name
	ZeroMemory( &ofn , sizeof( ofn ) );
	ofn.lStructSize = sizeof ( ofn );
	ofn.hwndOwner = NULL  ;
	ofn.lpstrFile = szFile ;
	ofn.nMaxFile = sizeof( szFile );
	ofn.lpstrFilter = L"All\0*.*\0Text\0*.TXT\0";
	ofn.nFilterIndex =1;
	ofn.lpstrFileTitle = NULL ;
	ofn.nMaxFileTitle = 0 ;
	ofn.lpstrInitialDir=NULL ;
	ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST ;
	GetSaveFileName( &ofn );

	// Now simpley display the file name 
	MessageBox ( NULL , ofn.lpstrFile , L"File Name" , MB_OK);
	return 0;
}

приложение на C#, надеюсь, мне не придётся писать сейчас? ;)
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469110
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych, действительно, снимаю шляпу!
Но мне нужна была всего одна строчка. Вот эта
wsprintf(szFile, L"%s", hello);
И тогда "ларчик просто открывался"
Спасибо большое!

Ну и осмелюсь спросить по поводу второго вопроса:
В какой кодировке записываются имена файлов на диске;
Мне нужно будет использовать латиницу, кирилицу и иврит
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469130
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitDima T, я вообще-то обращался за помощью к Гуру.

Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN
У Гуру другая миссия.

Где лежит MSDN я и сам знаю.
И прежде чем просить помощи я всегда пытаюсь сам сначала разобраться
Я ссылку на гугл давал, там примеры заполнения OPENFILENAME. Собственно тоже самое что тебе egorych, но без использования юникода.

ИМХО У тебя проблема в том что ты не понимаешь как с юникодом работать, чем он отличается от ASCII-кодировок. Почитай что-нибудь на эту тему.
ArbitВ какой кодировке записываются имена файлов на диске;
Мне нужно будет использовать латиницу, кирилицу и иврит
NTFS хранит имена файлов в юникоде ( UTF-16 ) Виндовс тоже использует UTF-16 в качестве родной кодировки.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469150
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitDima T, я вообще-то обращался за помощью к Гуру.

Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN
У Гуру другая миссия.Какая у Гуру миссия? Завязывать шнурочки новичкам?
Тебе скинули ссылку на способ "завязывания шнурков" - учись "завязывать" самостоятельно.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469162
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitМне нужно будет использовать латиницу, кирилицу и иврит
используйте явную юникод версию GetSaveFileNameW и OPENFILENAMEW
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469332
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitDima T, я вообще-то обращался за помощью к Гуру.

Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN
У Гуру другая миссия.



Ребята, начинаем миссию "ГУРУ"!.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469339
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arbitegorych, действительно, снимаю шляпу!
Но мне нужна была всего одна строчка. Вот эта
wsprintf(szFile, L"%s", hello);
И тогда "ларчик просто открывался"
Спасибо большое!

Ну и осмелюсь спросить по поводу второго вопроса:
В какой кодировке записываются имена файлов на диске;
Мне нужно будет использовать латиницу, кирилицу и иврит

Имена файлов на диске в неизвестной кодировке, потому что это -- дело файловой системы.
А вот общаться с WinAPI ты должен в той кодировке, в которой работает приложение.
Там всё сложнее немного, чем ты себе представляешь.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469351
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TNTFS хранит имена файлов в юникоде ( UTF-16 ) Виндовс тоже использует UTF-16 в качестве родной кодировки.

Но это вовсе не значит, что приложение обязано общаться с WinAPI именно в UTF-16.
А вовсе и наоборот, должно общаться в той кодировке, в которой оно настроено.
Например, это может быть cp866 для консольных приложений, или cp1251 для оконных.
Это для MBCS -приложений (см. документацию на tchar.h)

Для UNICODE-приложений это обычно кодировка UTF-16.

Но это вовсе не обязательно.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469384
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivРебята, начинаем миссию "ГУРУ"!. Оффтоп:
Кто вообще завёл это определение (Гуру) в программировании? Введение экзистенциальных понятий в точных технических дисциплинах наводит на мысль, что кто-то что-то хотел втиснуть в индустрию (плохое слово, корень "индус"... отсюда, что ли, эти Гуры пошли?...), в сообщество мимо "проходной".
Кидание ссылки - это самый профессиональных ход, если не требуется каких-то технических уточнений со стороны отвечающего, которых не хватает в материале по ссылке.
Во-первых, это кратко.
Во-вторых, решает проблему (если нет, автор может вернуться за уточнениями)
В-третьих, экономит место и время. Всем.
Как могло так получится, что люди, выдающие лишние простыни текста (как я сейчас) вдруг стали экспертами?
Кстати, знаете, какая мне идея пришла, пока я всё это набирал, как надо отвечать на вопросы, если они требуют уточнения со стороны отвечающего:
- идёте к себе в блог, журнал, ещё куда-то.
- пишите вопрос и ответ с объяснениями там, в блоге/журнале
- возвращаетесь назад и оставляете ссылку на ответ в форуме
в результате, у вас +1 статья в бложике, и в следующий раз вам просто опять вызвать эту функцию оставить эту ссылку. Всё, как у программеров
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469403
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivдолжно общаться в той кодировке, в которой оно настроено.
Например, это может быть cp866 для консольных приложений

Ню-ню. Удачи с использованием ОЕМ кодировки в ANSI функциях.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469425
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА вовсе и наоборот, должно общаться в той кодировке, в которой оно настроено.
независимо от настроек компиляции, приложение может обращаться как к UNICODE, так и к ANSI версиям API функций (указанием суффикса A или W в именах функций и структур)
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469464
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, дорогие, ну чего вы в самом деле!
Совсем "помидорами закидали" :))

Ну захожу я сюда раз в месяц с конкретным вопросом...
Да, мне уже седьмой десяток лет...
Да, я вообще не технарь, а врач-психиатр и всю жизнь "завязываю шнурочки" и "вытираю сопельки"
всем страждущим и не сетую на это
Да. я постоянно стараюсь тренировать свои мозги - это профилактика надвигающеося маразма!
Простите меня за это!

Теперь о Гуру...
Во-первых это мое уважение к вашему Сообществу
Во-вторых Гуру - это Наставник

И благодаря вам, Гуру, я с нуля практически написал свое маленькое бизнес-приложение
на медицинскую тему
используя C# как пользовательский интерфейс, С++ как основной модуль программы (DLL)
PHP - автоматическая регистрация приложения на своем сайте, и SQL - база данных
И для меня - это еще один мой личный маленький успех в моем возрасте

Вопрос сохранения файла с именем на разных языках - последний не решенный в моем приложении.

Спасибо вам за то, что помогаете тянущимся к знаниям, независимо от их возраста!
Особая моя благодарность: Изопропил, Dimitry Sibiryakov!

Простите еще раз.
"Да не оскуднеет рука дающего"
Т
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469745
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arbit
Ну захожу я сюда раз в месяц с конкретным вопросом...
Да, мне уже седьмой десяток лет...
Да, я вообще не технарь, а врач-психиатр и всю жизнь "завязываю шнурочки" и "вытираю сопельки"



Блин, предупреждать надо!
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469779
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,
Вы сожалеете что оказывали мне действенную помощь?
Я ведь не от нечего делать этим занимаюсь.
И мои скромные результаты дают мне добавку к пенсии ... кстати

Так что не сожалейте, СПАСИБО всем! :)
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469783
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArbitMasterZiv,
Вы сожалеете что оказывали мне действенную помощь?
Я ведь не от нечего делать этим занимаюсь.
И мои скромные результаты дают мне добавку к пенсии ... кстати

Так что не сожалейте, СПАСИБО всем! :)
Странный ты. Как будто тут сидят и ждут продвинутых пенсионеров. Тут проходит 100500 студентов желающих что бы им на халяву порешали их курсовые, потом чтобы за них поработали когда они на работу устроятся. Ты просто затерялся в этой толпе. MasterZiv правильно написал - обозначь себя и отношение в тебе будет другое.
...
Рейтинг: 0 / 0
GetSaveFileName - как задать имя файла при открытии?
    #39469789
Arbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
Спасибо всем за понимание !!!
А беспокоить вопросами буду только когда своих мозгов не хватит разобраться.
Общение с умными людьми обогащает в прямом и переносном смысле :))
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / GetSaveFileName - как задать имя файла при открытии?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]