Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые Гуру! Собственно, sabj. В аналогичном диалоговом окне в С# есть возможность задать имя файла из переменной при открытии окна. А в С++ , в GetSaveFileName есть такая возможность? Мои попытки поисков в структуре не увенчались успехом. В гугле тоже не получилось найти. (может не так запрос делал...) Я хочу сохранять изображения из массива в фал и чтобы имя файла при открытии окна уже было записано в соответствующее поле. И второй вопрос, в какой кодировке должно быть имя в переменной, чтобы оно правильно записалось на диск при условии что имена могут быть не только на латинице , но и в кирилице , а также на иврите ... Имена будут браться из С# в DataGridViev и передаваться в DLL C++ как string . Приниматься будут в DLL как const wchar_t* А в гриде имена могут быть на любом языке Заранее всех благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 15:56 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Забыл сказать что для сохранения файла я использую API WriteFile ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 15:58 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbit, MSDN::OPENFILENAME structure ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 16:04 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Надо заполнить структуру OPENFILENAME Гугл в помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 16:06 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Dima T, я вообще-то обращался за помощью к Гуру. Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN У Гуру другая миссия. Где лежит MSDN я и сам знаю. И прежде чем просить помощи я всегда пытаюсь сам сначала разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 21:33 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitМои попытки поисков в структуре не увенчались успехом.искал без фонарика)) MSDN::OPENFILENAME structure lpstrFile Type: LPTSTR The file name used to initialize the File Name edit control. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 22:04 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
egorych, Если у с получилось проинициализировать это поле структуры, Не сочтите за труд, Покажите пожалуйста всего одну строчку кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 22:14 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitПокажите пожалуйста всего одну строчку кода.с выньапи одной строчкой не получится )) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. как то так, не компилировал, мог наврать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 23:03 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
egorych, Простите великодушно. Вы меня не совсем правильно поняли. Повторюсь: Если у Вас получится не только скомпилировать свой код, но и при открытии окна диалога в поле имя файла обнаружить Hello world.txt, тогда я с благодарностью сниму шляпу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 23:35 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
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. приложение на C#, надеюсь, мне не придётся писать сейчас? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 00:12 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
egorych, действительно, снимаю шляпу! Но мне нужна была всего одна строчка. Вот эта wsprintf(szFile, L"%s", hello); И тогда "ларчик просто открывался" Спасибо большое! Ну и осмелюсь спросить по поводу второго вопроса: В какой кодировке записываются имена файлов на диске; Мне нужно будет использовать латиницу, кирилицу и иврит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 00:32 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitDima T, я вообще-то обращался за помощью к Гуру. Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN У Гуру другая миссия. Где лежит MSDN я и сам знаю. И прежде чем просить помощи я всегда пытаюсь сам сначала разобраться Я ссылку на гугл давал, там примеры заполнения OPENFILENAME. Собственно тоже самое что тебе egorych, но без использования юникода. ИМХО У тебя проблема в том что ты не понимаешь как с юникодом работать, чем он отличается от ASCII-кодировок. Почитай что-нибудь на эту тему. ArbitВ какой кодировке записываются имена файлов на диске; Мне нужно будет использовать латиницу, кирилицу и иврит NTFS хранит имена файлов в юникоде ( UTF-16 ) Виндовс тоже использует UTF-16 в качестве родной кодировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 08:02 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitDima T, я вообще-то обращался за помощью к Гуру. Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN У Гуру другая миссия.Какая у Гуру миссия? Завязывать шнурочки новичкам? Тебе скинули ссылку на способ "завязывания шнурков" - учись "завязывать" самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 09:05 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitМне нужно будет использовать латиницу, кирилицу и иврит используйте явную юникод версию GetSaveFileNameW и OPENFILENAMEW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 09:31 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitDima T, я вообще-то обращался за помощью к Гуру. Гуру внимательно читают посты , а не кидают сходу ссылку на MSDN У Гуру другая миссия. Ребята, начинаем миссию "ГУРУ"!. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:03 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbitegorych, действительно, снимаю шляпу! Но мне нужна была всего одна строчка. Вот эта wsprintf(szFile, L"%s", hello); И тогда "ларчик просто открывался" Спасибо большое! Ну и осмелюсь спросить по поводу второго вопроса: В какой кодировке записываются имена файлов на диске; Мне нужно будет использовать латиницу, кирилицу и иврит Имена файлов на диске в неизвестной кодировке, потому что это -- дело файловой системы. А вот общаться с WinAPI ты должен в той кодировке, в которой работает приложение. Там всё сложнее немного, чем ты себе представляешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:06 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Dima TNTFS хранит имена файлов в юникоде ( UTF-16 ) Виндовс тоже использует UTF-16 в качестве родной кодировки. Но это вовсе не значит, что приложение обязано общаться с WinAPI именно в UTF-16. А вовсе и наоборот, должно общаться в той кодировке, в которой оно настроено. Например, это может быть cp866 для консольных приложений, или cp1251 для оконных. Это для MBCS -приложений (см. документацию на tchar.h) Для UNICODE-приложений это обычно кодировка UTF-16. Но это вовсе не обязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:11 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZivРебята, начинаем миссию "ГУРУ"!. Оффтоп: Кто вообще завёл это определение (Гуру) в программировании? Введение экзистенциальных понятий в точных технических дисциплинах наводит на мысль, что кто-то что-то хотел втиснуть в индустрию (плохое слово, корень "индус"... отсюда, что ли, эти Гуры пошли?...), в сообщество мимо "проходной". Кидание ссылки - это самый профессиональных ход, если не требуется каких-то технических уточнений со стороны отвечающего, которых не хватает в материале по ссылке. Во-первых, это кратко. Во-вторых, решает проблему (если нет, автор может вернуться за уточнениями) В-третьих, экономит место и время. Всем. Как могло так получится, что люди, выдающие лишние простыни текста (как я сейчас) вдруг стали экспертами? Кстати, знаете, какая мне идея пришла, пока я всё это набирал, как надо отвечать на вопросы, если они требуют уточнения со стороны отвечающего: - идёте к себе в блог, журнал, ещё куда-то. - пишите вопрос и ответ с объяснениями там, в блоге/журнале - возвращаетесь назад и оставляете ссылку на ответ в форуме в результате, у вас +1 статья в бложике, и в следующий раз вам просто опять вызвать эту функцию оставить эту ссылку. Всё, как у программеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:41 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZivдолжно общаться в той кодировке, в которой оно настроено. Например, это может быть cp866 для консольных приложений Ню-ню. Удачи с использованием ОЕМ кодировки в ANSI функциях. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:53 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZivА вовсе и наоборот, должно общаться в той кодировке, в которой оно настроено. независимо от настроек компиляции, приложение может обращаться как к UNICODE, так и к ANSI версиям API функций (указанием суффикса A или W в именах функций и структур) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:03 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Ребята, дорогие, ну чего вы в самом деле! Совсем "помидорами закидали" :)) Ну захожу я сюда раз в месяц с конкретным вопросом... Да, мне уже седьмой десяток лет... Да, я вообще не технарь, а врач-психиатр и всю жизнь "завязываю шнурочки" и "вытираю сопельки" всем страждущим и не сетую на это Да. я постоянно стараюсь тренировать свои мозги - это профилактика надвигающеося маразма! Простите меня за это! Теперь о Гуру... Во-первых это мое уважение к вашему Сообществу Во-вторых Гуру - это Наставник И благодаря вам, Гуру, я с нуля практически написал свое маленькое бизнес-приложение на медицинскую тему используя C# как пользовательский интерфейс, С++ как основной модуль программы (DLL) PHP - автоматическая регистрация приложения на своем сайте, и SQL - база данных И для меня - это еще один мой личный маленький успех в моем возрасте Вопрос сохранения файла с именем на разных языках - последний не решенный в моем приложении. Спасибо вам за то, что помогаете тянущимся к знаниям, независимо от их возраста! Особая моя благодарность: Изопропил, Dimitry Sibiryakov! Простите еще раз. "Да не оскуднеет рука дающего" Т ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 13:34 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbit Ну захожу я сюда раз в месяц с конкретным вопросом... Да, мне уже седьмой десяток лет... Да, я вообще не технарь, а врач-психиатр и всю жизнь "завязываю шнурочки" и "вытираю сопельки" Блин, предупреждать надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 18:25 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Вы сожалеете что оказывали мне действенную помощь? Я ведь не от нечего делать этим занимаюсь. И мои скромные результаты дают мне добавку к пенсии ... кстати Так что не сожалейте, СПАСИБО всем! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 19:37 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitMasterZiv, Вы сожалеете что оказывали мне действенную помощь? Я ведь не от нечего делать этим занимаюсь. И мои скромные результаты дают мне добавку к пенсии ... кстати Так что не сожалейте, СПАСИБО всем! :) Странный ты. Как будто тут сидят и ждут продвинутых пенсионеров. Тут проходит 100500 студентов желающих что бы им на халяву порешали их курсовые, потом чтобы за них поработали когда они на работу устроятся. Ты просто затерялся в этой толпе. MasterZiv правильно написал - обозначь себя и отношение в тебе будет другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 19:46 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Dima T, Спасибо всем за понимание !!! А беспокоить вопросами буду только когда своих мозгов не хватит разобраться. Общение с умными людьми обогащает в прямом и переносном смысле :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 20:00 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Кольцо власти жгло руку... Если-бы не Илья в топике то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 20:04 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitDima T, Спасибо всем за понимание !!! А беспокоить вопросами буду только когда своих мозгов не хватит разобраться. Общение с умными людьми обогащает в прямом и переносном смысле :)) Пожалуйста! Вопросы задавай. Тут любят на вопросы отвечать, но не студентам. Профессиональный эгоизм: "я через это сам прошел и ты будь добр сам". И это правильно, иначе студент никогда не станет профи. Как уже написал: обозначай сразу что ты не профи и не студент. Так получишь понимание и полноценную помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 20:19 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
egorychArbitПокажите пожалуйста всего одну строчку кода.с выньапи одной строчкой не получится )) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. как то так, не компилировал, мог наврать Предлагаю в пятницу обсудить 255. Раньше, во время ДОС, этого хватало гарантированно. Сейчас MAX_PATH и то может не хватить - до 32800 растянули. Вроде и стек жалко (хотя там уже 1Мб), и потенциальный эксплойт создавать не хоцца. Что делать то правильно ? (Как сделали основатели в C#, не смотрел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 22:30 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
SiemarglСейчас MAX_PATH и то может не хватить - до 32800 растянули. 260 как и много лет назад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 22:33 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
CreateFile In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. а тараканы из всех щелей лезут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 22:39 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitMasterZiv, Вы сожалеете что оказывали мне действенную помощь?:) да нет, ровно наоборот. если человек - профессионал и спрашивает такое - это свидетельство профессиональной некомпетентности и провод для грусти. Если же это типа хобби, то все понятно и объяснимо. я потом ещё сделаю review твоего вопроса, по сути редкостный бред, я хочу объяснить, почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 00:00 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
[quot Arbit]Здравствуйте уважаемые Гуру! ну, давай устроим детальный разбор полетов... Собственно, sabj. А в С++ , в GetSaveFileName есть такая возможность? вообще, этот изначальный вопрос не стоит даже выеденного яйца. Там четко написано в документации, что вЫходной параметр - он также и Входной Там пишешь дефолт, и он работает. на выходе получаешь итоговый результат. И второй вопрос, в какой кодировке должно быть имя в переменной, чтобы оно правильно записалось на диск при условии что имена могут быть не только на латинице , но и в кирилице , а также на иврите ... Имя переменной в С++ может быть только в Latin1.. Имена будут браться из С# в DataGridViev и передаваться в DLL C++ как string . Приниматься будут в DLL как const wchar_t* тут какой-то полный бред, потому как string - это char, а не wchar_t, а wchar_t - это wstring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 00:45 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, спасибо. Поскольку программирование - это для души, то я мыслю не как профессионал Это понятно. Вопрос про о наличии дефолта- я читал документацию. Я понимал что все должно быть. Но на практике я получал исключение. Когда egorych мне показал код, я увидел ту строчку которой мне не хватало. Надо было перегнать из const wchar_t перегнать просто в массив wchar_t* Что касается второго вопроса - тут я просто не совсем ясно выразился, но Изопропил понял меня Он мне много помогал уже. Я имел ввиду что в C# в прототипе переменная уходит как string , а принять в С++ ее ведь можно и как const char* и как const wchar_t* если я правильно понял. Во всяком случае в проекте я принимал и так и так в разных участках. У меня слабое звено для понимания - это вопрос кодировки в момент обмена данных между menaged/unmenaged кодом Я бы хотел попросить помочь один раз и навсегда понять схему эту. Поясню что я имею ввиду и как я делаю. а Вы поправьте меня пожалуйста В проекте я постоянно гоняю данные С#->C++->sQLite или MySQL и обратно. Я не использую для этого библиотеку базы под С# все делаю в С++ а готовый результат вывожу в C# Если я передаю строки в базу, (а строки идут на кирилице, латинице и иврите), то в шарпе я сначала пакую string в base64-строку , в С++ принимаю как const char*, перевожу в std::string распаковываю,кое-что шифрую и отдаю в базу. При этом с кодировкой ничего не делаю , так как все сделано в шарпе через Код: c# 1. 2. 3. 4. 5. и в базу нормально идет и иврит и кирилица. Если выборка из базы, то собираю XML строку пригодную для записи в DataTable и маршалингом передаю массив в шарп. В DataGridViev тоже все языки нормально ложаться. А вот когда реализовывал задачу загрузки в базу изображений и выгрузки их из базы на диск, обнаружил неодинаковое поведение. Выбирал файлы для загрузки диалоговым окном из шарповского класса передавал полный путь в stringt без паковки base64 , принимал как const wchar_t* и передавал в CreateFileW . И загружал благополучно файлы с именами на любом языке. Никаких манипуляций с кодировками не требовалось А вот когда начал сохранять на диск, то наткнулся на грабли: Имя файла для установки в дефолт шарповского диалогового окна я брал из грида А если я правильно понимаю, то кодировка в данном случае UTF16. После получения полного пути файла из шарповского окна (аналогично загрузке), принимаю в С++ как const wcar_t* - и получаю иероглифы на латинице и кирилице и исключение при иврите. Понял, что путь к файлу при загрузке и путь к файлу при сохранении в разных кодировках Пока вышел из положения так: беру имя файла из грида, без base64 отдаю в С++. Там принимаю в const char* перевожу в wchar_t* вот таким образом; bstr_t temp = _bstr_t(PathFiles.c_str()); wchar_t* FName = temp.operator wchar_t *(); и устанавливаю дефолтом в диалоговое окно С++ . При этом сохраняются имена только на латинице и кирилице. На иврите получается по дефолту ????.gpg и окно дальше не пропускает на сохранение Пробовал предварительно в шарпе паковать в base64 и принимать как const char* а затем использовать MultiByteToWideChar но не получилось Понимаю что в голове сумбур, и так никто не делает. Самому разобраться пока сложно. Разницу между юникодом и ASCII, однобайтовой и многобайтовой кодировкой понимаю, Но с правильным использованием соответствующих инструментов для этого у меня пока проблема Получилось слишком длинно. Извините Вопросы по другим темам пока в основном удается разобрать самостоятельно. Иногда обращаюсь на форум ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 03:48 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbitберу имя файла из грида, без base64 отдаю в С++. Там принимаю в const char* вот здесь и потеряли всё кроме "ANSI" Arbit bstr_t temp = _bstr_t(PathFiles.c_str()); из грида UNICODE тащить нужно. как я предполагаю - c# вызывает C-dll , а в параметрах маршаллинга задано преобразование в ANSI (явно или неявно) фрагмент кода давайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 09:32 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Изопропил, добрый день! Я снимаю шляпу перед Вами. И могу сказать только одно: Медицина потеряла замечательного врача-диагноста!!! автор в параметрах маршаллинга задано преобразование в ANSI (явно или неявно) Это- объявление в С# при загрузке изображений Код: c# 1. 2. А это - при сохранении на диск Код: c# 1. 2. Я забыл ЯВНО указать кодировку Теперь буду знать, что по умолчанию всегда стоит ANSI. Спасибо огромное! Не случайно я выбрал Вас в качестве своего Наставника ! Вопрос закрыт. Вот это и есть наставничество: Конкретный вопрос -> диагностика ->конкретный ответ Как всегда - СУПЕР! Хороших выходных! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 13:52 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbit У меня слабое звено для понимания - это вопрос кодировки в момент обмена данных между menaged/unmenaged кодом Я бы хотел попросить помочь один раз и навсегда понять схему эту. это вопрос скорее по C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2017, 16:39 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
MasterZivArbitУ меня слабое звено для понимания - это вопрос кодировки в момент обмена данных между menaged/unmenaged кодом Я бы хотел попросить помочь один раз и навсегда понять схему эту. это вопрос скорее по C# он смежный, а понимания внутренних механизмов здесь поболее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2017, 17:13 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Ну будь здоров док. У нас тут конешно не Кащенко но тоже забавные топики бывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2017, 21:02 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Arbit, а есть какие-нибудь подобные форумы для врачей-психиатров? Я бы почитал Btw, Гуру - духовный наставник, а не технический :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 05:25 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
CEMb, приветствую Вас! "MSDN " для российских психиатров :)) Но там при регистрации на форуме в статусе специалиста нужно будет кроме прочей информации об образовании загрузить скан диплома. Можно и без диплома, но.... как пациент :)) А на практике, врачи обычно читают профессиональные зарубежные и отечественные монографии и ездят на тематические конференции. У нас другая специфика. Студенты и средний мед персонал в этом вопросе живут отдельной жизнью. Со студентами работают только в ВУЗe. Это минимум 7 лет обучения, а потом еще минимум 2 если узкая специализация Средний медперсонал дрючат в мед училище, а потом всю трудовую деятельность в лечебном учреждении Все ТОЛЬКО ОЧНО!!! :)) Я не знаю, наверное этот пост оффтоп. Не хочу попасть в бан, я очень дорожу помощью форумчан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 20:16 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 20:24 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitЯ не знаю, наверное этот пост оффтоп. Не хочу попасть в бан, я очень дорожу помощью форумчан! Тут правила достаточно либеральные, если других не оскорблять забанят максимум топик за уход от темы. А если тема интересная и не раскрытая, то думаю модераторов можно уговорить не закрывать. А тема именно такая, т.к. ваше врачебное сообщество "вещь в себе", т.е. знает что делает, но никому не говорит, а когда делает толком ничего не поясняет. Лично мне было очень интересно узнать тонкости перед тем как меня будут резать, но все что я нагуглил это мнения пациентов с похожими болячками, потом хирург снимавший швы удивился: "где ты этой хрени начитался? Нормальные доктора в инет не пишут." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 21:01 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Dima T, Может сначала спросить разрешение у модераторов, прежде чем забанят? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2017, 23:34 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Изопропил, добрый вечер! Опять я наступил на грабли в связке C#->C++->C#... Как обычно строка из базы SQLite идет в C# через DLL C++ Кодировка в базе UTF8 В DLL результат селекта преобразуется в XML -строку и отдается в С# как BSTR В C# принимается вот так Код: c# 1. 2. 3. Все работает как обычно и замечательно. НО Если строка в базе содержит управляющие символы \r\n, то они при выводе строки в MessageBox С# передаются просто как символы - перевода каретки не происходит. Еще заметил, что в С# если переменной присваивается строка вот так Код: c# 1. то каретка переводится, а если так Код: c# 1. то перевод каретки не работает Как я понимаю префикс @ означает что строка юникодная. Значит из DLL идет юникодная строка (BSTR) А MessageBox в такой строке не принимает управляющие символы Во что перегнать строку? Заранее благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2017, 19:08 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitКак я понимаю префикс @ означает что строка юникодная. Значит из DLL идет юникодная строка (BSTR) Юникод тут ни при чем. Это наследие консольного Си. В C# @ означает читать как написано, т.е. \r это '\' и 'r', а не перейти в начало строки. Просто убери @ если надо перейти в начало строки. Это сделано для написания путей. Чтобы вместо убогого Код: plaintext 1. можно было написать по-нормальному Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2017, 19:54 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Dima T, Спасибо. С @ - все понятно. Но у меня проблема со строкой, которую я получаю из базы. В базе она лежит как: "Запись не может быть удалена,\r\nтак как содержит сведения о визитах.\r\n" Я ее получаю в C# из DLL на С++ маршаллингом Как мне ее преобразовать, чтобы MessageBox понял "\r\n " как управляющие символы и перевел "каретку". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2017, 21:00 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
ArbitЯ ее получаю в C# из DLL на С++ маршаллингомНе надо путать передачу данных с маршаллингом. Это несколько разные сущности. Путать термины вообще не полезно. Профессиональный психиатр же не будет путать шизофрению с расщеплением личности? :) ArbitКак мне ее преобразовать, чтобы MessageBox понял "\r\n " как управляющие символы и перевел "каретку".C# и C++ это два очень разных языка, их тоже не нужно путать. Проблемы C# обсуждаются в соседнем форуме: http://www.sql.ru/forum/dotnet И гугл никто не отменял, первая же ссылка дает много информации: c# carriage return in message box ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2017, 23:59 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
White Owl, Спасибо за участие. авторПрофессиональный психиатр же не будет путать шизофрению с расщеплением личности? Вы правы, профессиональный - точно не будет :)) Вы наверное удивитесь, но в переводе с древнегреческого шизофрения и есть дословно - расщепление ума, Заболевание проявляющееся распадом личности Теперь по существу моего вопроса авторC# и C++ это два очень разных языка, их тоже не нужно путать Видимо Вы не совсем поняли мой вопрос, который находится на "стыке" этих двух языков Строка написаная в C# и в MessageBox отображаемая с переносом строки Код: c# 1. не идентична строке, Запись не может быть удалена,\r\nтак как содержит сведения о визитах.\r\n\ которую я получаю в переменную С# из базы через DLL на С++ В этой связи я и спрашиваю: Как преобразовать строку в DLL так, чтобы она, попав в С# правильно отобразилась в MessageBox. Еще раз - Строку для MessageBox я не готовлю в С#!!! и мне совершенно не понятно пока почему одна и та же строка, сделанная в C# и полученная из DLL ведет себя по разному в MessageBox? Может все-таки важно в какой кодировке передаются управляющие символы в данной строке? У меня мультиязычное приложение и локализация находится в базе. А сообщения в MessageBox - многострочные. Можно было бы, как вариант, разделить строку сообщения в базе с помощбю сепаратора и передать в C# и там рампарсить и склеить заново средствами C# Но может есть более рациональное правильное и красивое решение? А пользоваться гуглом я умею. Ваши ссылки тоже, к сожалению, не дают ответа, потому что находятся не в плоскости заданного вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2017, 01:46 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
Вопрос закрыт Оказалось что при передаче из unmenage в menager код, добавляется автоматом дополнительный слэш: и вместо строки "\r\n" в шарп идет "\\r\\n". Replace в C# решил вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2017, 02:22 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
White Owl, ArbitЯ ее получаю в C# из DLL на С++ маршаллингом White OwlНе надо путать передачу данных с маршаллингом. Это несколько разные сущности. Путать термины вообще не полезно. Профессиональный психиатр же не будет путать шизофрению с расщеплением личности? :) "Маршалинг (от англ. marshal — упорядочивать) в информатике — процесс преобразования информации (данных, двоичного представления объекта), хранящейся в оперативной памяти, в формат, пригодный для хранения или передачи. Процесс похож на сериализацию (отличия см. ниже). Обычно применяется тогда, когда информацию (данные, объекты) необходимо передавать между различными частями одной программы или от одной программы к другой." Вот этот самый маршаллинг я и использую при передаче данных из unmenaged в menaged код ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2017, 02:34 |
|
||
|
GetSaveFileName - как задать имя файла при открытии?
|
|||
|---|---|---|---|
|
#18+
процесс передачи значений параметров при вызове unmanaged кода из managed - принято в той среде называть маршаллингом. ArbitЯ ее получаю в C# из DLL на С++ маршаллингом корректнее выразиться - посредством P/Invoke ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2017, 10:05 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018145]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 298ms |
| total: | 587ms |

| 0 / 0 |
