Поиск:

Ответ в темуСоздание новой темы Создание опроса
> файлы, папки, диалоги, combobox`ы, есть пара проблем 
:(
    Опции темы
:)PROD[;
  Дата 15.6.2006, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.4.2005
Где: Томск Россия

Репутация: нет
Всего: нет



Здравствуйте.
Эти вопросы по любому уже поднимались, но меня время поджимает - некогда искать.
1)нужно чтоб OpenDialog "открывал" папку, то есть настроить фильтр только на отображение папок, либо на одну папку с конкретным именем, типа ./proga . Ну и соответственно чтоб в OpenDialog1->FileName лежал путь папки. Если OpenDialog этого не всостоянии подскажите что лучше. smile 
2)как сделать чтоб OpenDialog папкой "по умолчанию" (ту которую он показывает при создании себя) считал папку где лежит его же exeшник (то бишь сама прога). smile 
И как вообще задается папка открываемая по умолчанию  
3)есть два ComboBox связаных друг с другом чем-то вроде запроса "один к многим". То есть когда выберается элемент в первом должно формироватся содержимое второго. Плюс к этому в процессе работы программы (множества её вызовов, а не одного) в эти списки будут добавлятся элементы и они должны сохранятся. Я планировал создать два бинарника в которые писать структуры.
Первый бинарник - "старший" комбо, записывается структура типа 
struct MainComBox{
  int ID //- itemindex комбика 1
  AnsiString item //-текст соответствующий Itemindex

Второй бинарник - младший комбик
struct OpinComBox{
  int ID // itemindex младшего комбика
  int IDM // itemindex старшего комбика которому он соответствует
}
А теперь вопрос - не получается правильно записать и считать с файла эти структуры. Я думаю из того что использую AnsiString, а у них различная длина.
подскажите как создавать Stringи фиксированой длины, либо как конвертировать их в char массив и обратно. Либо вариант по лучше.
4)как создавать папки, подкаталоги в каталогах путь которых известен smile 
5)как копировать файлы в папку. желательно без непосредственного переноса содержимого, типа открываем старый как бинарник, создаем новый бинарник и понеслись биты в цикле. smile 
6)как снять атрибут "для чтения" с файла smile 
 smile 
зарание спасибо  smile  
PM   Вверх
Kuber
Дата 15.6.2006, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 7.4.2006
Где: #vingrad

Репутация: 1
Всего: 3



Цитата

6)как снять атрибут "для чтения" с файла 


SetFileAttributes("C:\1.txt",FILE_ATTRIBUTE_NORMAL); 
=========================================
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL 
FILE_ATTRIBUTE_READONLY 
FILE_ATTRIBUTE_SYSTEM. 
FILE_ATTRIBUTE_TEMPORARY
=========================================

Цитата

4)как создавать папки, подкаталоги в каталогах путь которых известен 


Передаешь функции CreateDirectory свой путь + добавляешь папку которую надо создать.
==========================================
BOOL CreateDirectory(
  LPCTSTR lpPathName, 
  LPSECURITY_ATTRIBUTES lpSecurityAttributes 
); 
==========================================
Цитата

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


Используй CopyFile или CopyFileEx..

Цитата

2)как сделать чтоб OpenDialog папкой "по умолчанию" (ту которую он показывает при создании себя) считал папку где лежит его же exeшник (то бишь сама прога). 


Код

OpenDialog1->InitialDir=Application->ExeName;



Некоторые описания взяты из msdn, а вообще если ее у тебя нету, то смотри хелп в билдере
Win32 Programmer's Reference
--------------------
Если меня угораздило написать что то умное и вам понравилось, то не забудте нажать [-]...:)    
PM ICQ   Вверх
skyboy
Дата 15.6.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



1) в разных пакетах есть компонент openfolderdialog. Уж он-то точно работает только с папками. Посмотри на www.torry.net
2) свойство диалога то ли path, то ли Folder. Определить папку запуска можно отделив от Application.ExeName имя самого ЕХЕшника
3) 
Цитата(:)PROD[; @  15.6.2006,  07:46 Найти цитируемый пост)
Я планировал создать два бинарника в которые писать структуры.

Я бе рекомендовал эту статью. И сохранять содержимое combobox'ов в файлы без заморочек.
4) ничего не понял. Что известно и что создавать?
5) так копировать или не копировать? что в этом предложении ключевое? "типа открываем старый как бинарник, создаем новый бинарник и понеслись биты в цикле" - это написано, как НАДО делать или как НЕ НАДО делать?
6) видимо, ты ищешь FileSetAttr
А в общем и целом, за "некогда искать" я бы сделал с тобой нечто нехорошее. Поиск в файле помощи у меня занял 7 минут. Навряд у тебя ушло бы на эту процедуру больше времени. Но ты готов ждать день ответа на форуме, а в справку зайти лень...  smile  
PM MAIL   Вверх
BreakPointMAN
Дата 15.6.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 6
Всего: 24



1,2) - читаем справку

Цитата

SelectDirectory

Brings up a dialog to allow the user to enter a directory name.

Unit

FileCtrl

Category

dialog and message routines

extern PACKAGE bool __fastcall SelectDirectory(const AnsiString Caption, const WideString Root, AnsiString &Directory);
extern PACKAGE bool __fastcall SelectDirectory(AnsiString &Directory, TSelectDirOpts Options, int HelpCtx);

Description

Call SelectDirectory to let the user enter a directory name. 

Use the first syntax to display the Windows directory browser. The Caption parameter specifies a caption for the dialog. The Root parameter specifies the root directory from which to browse. The selected directory is returned as the Directory parameter. When using this syntax, SelectDirectory does not change the value of the current directory.

Warning:    You can’t use the same variable for the Root parameter and the Directory parameter.

Use the second syntax to call the Select Directory dialog box. The directory passed to the function with the Directory parameter appears as the currently selected directory when the dialog box appears. The name of the directory the user selects becomes the value of Directory when the function returns.

The HelpCtx parameter is the help context ID number.

The Options parameter is a set of values. If Options is the empty set, the user can only select a directory that already exists. No edit box is provided for the user to enter a new directory name. If Options is not empty, the included values determine how the dialog responds when the user types a nonexistent directory name.

With either syntax, SelectDirectory returns true if the user selected a directory and chose OK, and false if the user chose Cancel or closed the dialog box without selecting a directory.
 


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.