code_10306.txt
------------ Дoбавленo:
Балин кривые мои руки - тема типа называется OpenDialog
|
Ответов: 1161
Рейтинг: 160
|
|||
|
Скажите, почему, если в строку адреса ввести адрес папки без символа , диалог открывает его как файл(т.е. выводит имя папки в поток)
code_10306.txt ------------ Дoбавленo: Балин кривые мои руки - тема типа называется OpenDialog |
|||
| карма: 0 |
| ||
| файлы: 1 | code_10306.txt [394B] [167] |
|
Ответов: 110
Рейтинг: 9
|
|||
|
Логически все правильно - слэш в конце однозначно указывает на то что это папка.
Видимо алгоритм так работает - все что за последним слэшем - имя файла. |
|||
| карма: 0 |
|
|
Ответов: 5227
Рейтинг: 587
|
|||
|
LainX, попробуй ход конём
|
|||
| карма: 4 |
|
|
Ответов: 1161
Рейтинг: 160
|
|||
|
Ну EvgIg логика конечно правильно, но есть одно НО... Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же C
andrestudio, это не решение - если я выберу другую папку, то это уже не поможет С таким ходом коня и недалеко до мата Ну набросал схемку по этому поводу(ну еще примочка в ней есть на существование файла) code_10307.txt ------------ Дoбавленo: Но такой метод муторный, и надоест быстро(не хочется вставлять мультики туда и сюда |
|||
| карма: 0 |
| ||
| файлы: 1 | code_10307.txt [1KB] [173] |
|
Ответов: 5227
Рейтинг: 587
|
|||
|
LainX, и что мешает выбрать другю папку
Add(StrCat,16428973,217,308) { Str2=";имя файла" } |
|||
| карма: 4 |
|
|
Ответов: 1161
Рейтинг: 160
|
|||
|
Add(StrCat,16428973,217,308)
{ Str2=";имя файла" } че там ; делает? |
|||
| карма: 0 |
|
|
Ответов: 5227
Рейтинг: 587
|
|||
|
а что рыба нужна
|
|||
| карма: 4 |
|
|
Ответов: 1161
Рейтинг: 160
|
|||
|
andrestudio писал(а): а что рыба нужна селедка Ну а правда, почему другие приложения открывают папки, а приложения в Hiasm выводят папку как "файл"? |
|||
| карма: 0 |
|
|
Ответов: 5227
Рейтинг: 587
|
|||
|
LainX, выкладывай что хочешь и что должно получится, вот и порешаем твой ребус.
|
|||
| карма: 4 |
|
|
Ответов: 110
Рейтинг: 9
|
|||
|
LainX писал(а): Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же C:\Program Files), то он откроет папку, а не откроет ее как проект.Действительно, разница есть. ------------ Дoбавленo: Лучше делать так: Это два разных диалога - в HiAsm'e диалог открытия файла, а здесь файла или каталога. Посему и поведение разное. ------------ Дoбавленo: Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо (надеюсь знатоки поправят, ежли я не прав) |
|||
| карма: 0 |
| ||
| Голосовали: | LainX |
|
Ответов: 1161
Рейтинг: 160
|
|||
|
EvgIg писал(а): Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо Спасибо большое - теперь работает! |
|||
| карма: 0 |
|
|
Ответов: 110
Рейтинг: 9
|
|||
|
LainX,
Всетаки надо попросить знатоков, чтобы добавили OSPathMustExist в компанент. А то у тебя он будет "подпатченный" |
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
Специально проверил, что вы тут натворили. Муть получилась изрядная.
Внимательно читаем описание флагов OFN_PATHMUSTEXIST - определяет, что пользователь может указать только существующий путь и имена файлов
Что означает, если такого пути или файла нет, то диалог не создасться вообще. Смотрим ситуацию с таким вариантом (флаг OSPathMustExist установлен) C C Подход должен быть совсем другой -- диалог должен создаваться всегда (флаг OSNoValidate вернуть на место), а вот FOpenDialog.Filename должен быть равен пусто, если это папка и на выход и в диалог не попадать |
|||
| карма: 22 |
|
|
Ответов: 1161
Рейтинг: 160
|
|||
|
nesco писал(а): CНу у меня создается и nesco писал(а): Program Files пропихивается в поток как файлНо вообще то это мне и нужно... |
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26322
Рейтинг: 2147
|
|||
|
LainXz , я немного ошибся, наоборот надо слэши в описании работы. Исправил пост.
Но мне не нравится, что по C И объясни, зачем в поток конечную папку пропихивать? Туда должны файлы попадать, а не папки. См. описание точки |
|||
| карма: 22 |
|