Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/76: Рейтинг темы: голосов - 76, средняя оценка - 4.54
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
1

OpenDialog

24.09.2013, 10:22. Показов 15114. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При открытии файла в C++Builder XE

C++
1
2
3
4
5
{if (OpenDialog1->Execute())
 
     Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 
    }
Задаем загрузку содержимое скажем текстового файла в поле мемо1.

Имеется еще едит1 и комбобокс.

Можно ли указать возможность такого открытия чтобы первая строка файла грузилась в мемо, вторая в едит, а третья в комбобокс?
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2013, 10:22
Ответы с готовыми решениями:

OpenDialog
Возникла проблема. в Edit записываю путь к файлу, открытый в OpenDialog в формате "C:\1\text.txt"...

OpenDialog
Вот такой код кнопки, открывающей файл, с помощью OpenDialog: void __fastcall...

OpenDialog
при определении пути к файлу в строку str попадают лишние символы \\. То есть, например...

Opendialog
Столкнулся с одним подводным камнем(с своими слабыми знаниями) есть opendialog выбирает файл...

40
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
24.09.2013, 10:38 2
Цитата Сообщение от coder8763 Посмотреть сообщение
При открытии файла в C++Builder XE

{if (OpenDialog1->Execute())

Memo1->Lines->LoadFromFile(OpenDialog1->FileName);

}

Задаем загрузку содержимое скажем текстового файла в поле мемо1.

Имеется еще едит1 и комбобокс.

Можно ли указать возможность такого открытия чтобы первая строка файла грузилась в мемо, вторая в едит, а третья в комбобокс?
Для Memo метод LoadFromFile загрузит всё содержимое файла. ИМХО по логике 2ю, 3ю строчки нужно вырезать из Memo и вставить куда требо.
1
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 10:53 3
Цитата Сообщение от coder8763 Посмотреть сообщение
При открытии файла в C++Builder XE

{if (OpenDialog1->Execute())

Memo1->Lines->LoadFromFile(OpenDialog1->FileName);

}

Задаем загрузку содержимое скажем текстового файла в поле мемо1.

Имеется еще едит1 и комбобокс.

Можно ли указать возможность такого открытия чтобы первая строка файла грузилась в мемо, вторая в едит, а третья в комбобокс?
Загрузите сначала в StringList, а потом раскидайте куда нужно

C++
1
2
3
4
5
6
TStringList * Temp = new TStringList;
Temp->LoadFromFile(OpenDialog1->FileName);
 
Memo1->Lines->Add(Temp->Strings[0]);
Edit1->Text = Temp->Strings[1];
ComboBox1->Items->Add(Temp->Strings[2]);
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 10:59  [ТС] 4
а как это будет выглядеть в данном случае? не подскажете?
0
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
24.09.2013, 11:06 5
Цитата Сообщение от coder8763 Посмотреть сообщение
а как это будет выглядеть в данном случае? не подскажете?
Как будет выглядить код, который выше?!
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 11:15 6
Цитата Сообщение от coder8763 Посмотреть сообщение
а как это будет выглядеть в данном случае? не подскажете?
Бросаете на форму кнопку, и все остальные компоненты.

На кнопке в событии OnClick пишите:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    if (OpenDialog1->Execute())
    {
       TStringList * Temp = new TStringList;
       Temp->LoadFromFile(OpenDialog1->FileName);
 
       Memo1->Lines->Add(Temp->Strings[0]);
       Edit1->Text = Temp->Strings[1];
       ComboBox1->Items->Add(Temp->Strings[2]);
    }
}

Вам нужно взять и почитать книгу.
Начните с изучения С++ ООП
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 11:22  [ТС] 7
Rapsod,
спасибо. я в курсе как кнопку добавить и обработчик нажатия прописать. это понятно.

а вот когда компилирую указанный код пишет что Temp неизвестный символ. не подскажите как его правильно объявить?
0
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
24.09.2013, 11:28 8
Цитата Сообщение от coder8763 Посмотреть сообщение
Rapsod,
спасибо. я в курсе как кнопку добавить и обработчик нажатия прописать. это понятно.

а вот когда компилирую указанный код пишет что Temp неизвестный символ. не подскажите как его правильно объявить?
Вот же:
Цитата Сообщение от Rapsod Посмотреть сообщение
C++
1
      TStringList * Temp = new TStringList;
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 11:33 9
Цитата Сообщение от coder8763 Посмотреть сообщение
Rapsod,
спасибо. я в курсе как кнопку добавить и обработчик нажатия прописать. это понятно.

а вот когда компилирую указанный код пишет что Temp неизвестный символ. не подскажите как его правильно объявить?
Может у вас библиотеки не подключены

Добавьте в проект

C++
1
#include <vcl.h>
1
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
24.09.2013, 11:42 10
Цитата Сообщение от Rapsod Посмотреть сообщение
Может у вас библиотеки не подключены
Она же базовая. При создании нового проекта всегда есть.
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 11:45  [ТС] 11
Цитата Сообщение от Rapsod Посмотреть сообщение
Может у вас библиотеки не подключены

Добавьте в проект

C++
1
#include <vcl.h>
спасибо. все получилось.

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

тока у меня с окнами opendialog и savedialog глюки какие-то.

вызываю команду опендиалог выбираю файл нажимаю открыть. файл загружается а окно открытия файла открывается снова само и так раз 6-7. что за глюк не понятно.
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 11:48 12
Цитата Сообщение от Kulgar Посмотреть сообщение
Она же базовая. При создании нового проекта всегда есть.
Ну так мало ли

Добавлено через 2 минуты
Цитата Сообщение от coder8763 Посмотреть сообщение
спасибо. все получилось.

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

тока у меня с окнами opendialog и savedialog глюки какие-то.

вызываю команду опендиалог выбираю файл нажимаю открыть. файл загружается а окно открытия файла открывается снова само и так раз 6-7. что за глюк не понятно.
В таком случае проект в студию. Мы же не телепаты)
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 11:52  [ТС] 13
Цитата Сообщение от Rapsod Посмотреть сообщение
Ну так мало ли

Добавлено через 2 минуты


В таком случае проект в студию. Мы же не телепаты)
ок. выкладываю. тока не смейтесь. я тока учусь )
Вложения
Тип файла: rar 123.rar (6.87 Мб, 12 просмотров)
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 12:06 14
Цитата Сообщение от coder8763 Посмотреть сообщение
ок. выкладываю. тока не смейтесь. я тока учусь )
Вот набросал, смотрите
Вложения
Тип файла: rar Test.rar (389.4 Кб, 27 просмотров)
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 13:32  [ТС] 15
Цитата Сообщение от Rapsod Посмотреть сообщение
Вот набросал, смотрите
клево! супер! все отлично работает! большое спасибо!

да кстати а чего у меня в моей программе опендиалог по многу раз сам открывался? я же просто добавил компоненты на форму и никаких хитрых манипуляций с ними для этого не делал.

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

я собственно что пытался в этой проге реализовать. чтобы определенные дынные из tedit, memo и combobox можно было сохранить savedialog в текстовый файл а потом открыть opendialog.

пока получилось тока из одного поля мемо в файл записать.

а с комбобокс вообще не получается. и при открытии вот такая вот загогулина. не знаю сможете вы помочь? или это слишком заморочено и сложно будет?

Добавлено через 24 минуты
Цитата Сообщение от Rapsod Посмотреть сообщение
Вот набросал, смотрите
С комбобокс изначально такая идея была.

Чтобы в текстовый файл сохранялось не значение из этого поля а порядковая позиция номера в списке.
И при открытии потом чтобы весь список был на месте а выбрана та позиция которая была выбрана в момент сохранения.

Не знаю вообще такое возможно или нет?
Если возможно то насколько сложно и заморочено?
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 13:42 16
да кстати а чего у меня в моей программе опендиалог по многу раз сам открывался? я же просто добавил компоненты на форму и никаких хитрых манипуляций с ними для этого не делал.
Видимо что-то поломали

заметил еще один интересный момент. если в комбобокс уже есть заранее несколько строчек то при загрузке в него новой строки старые исчезают.
Посмотрите ещё раз в код, я там описал очистку ComboBox перед добавлением новой строки
C++
1
ComboBox1->Clear();
я собственно что пытался в этой проге реализовать. чтобы определенные дынные из tedit, memo и combobox можно было сохранить savedialog в текстовый файл а потом открыть opendialog.
Храните данные в разных файлах.

пока получилось тока из одного поля мемо в файл записать.

а с комбобокс вообще не получается. и при открытии вот такая вот загогулина. не знаю сможете вы помочь? или это слишком заморочено и сложно будет?
Для того чтобы сохранить все поля ComboBox(а) в файл используйте код:
C++
1
ComboBox1->Items->SaveToFile("ComboBox.txt");
Добавлено через 5 минут
С комбобокс изначально такая идея была.

Чтобы в текстовый файл сохранялось не значение из этого поля а порядковая позиция номера в списке.
И при открытии потом чтобы весь список был на месте а выбрана та позиция которая была выбрана в момент сохранения.

Не знаю вообще такое возможно или нет?
Если возможно то насколько сложно и заморочено?
Нету ничего невозможного! Есть понятие сколько на это нужно времени...

Порядковая позиция ComboBox(а) определяется:

C++
1
int Position = ComboBox1->ItemIndex;
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 14:03  [ТС] 17
это получается что открывать потом тоже по отдельности надо. а можно сохранить в один файл так чтобы потом открыть можно было все из одного файла?
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 14:16 18
Как я уже писал
Нету ничего невозможного! Есть понятие сколько на это нужно времени...
Существует множество структур файлов. Какой выбрать, это уже от вас зависит, от ваших вкусов и религии

Добавлено через 1 минуту
Цитата Сообщение от coder8763 Посмотреть сообщение
это получается что открывать потом тоже по отдельности надо.
Именно. Но это не значит что нужно будет по сто раз нажимать Button.
1
273 / 12 / 1
Регистрация: 18.09.2013
Сообщений: 641
24.09.2013, 14:36  [ТС] 19
Цитата Сообщение от Rapsod Посмотреть сообщение
Как я уже писал
Существует множество структур файлов. Какой выбрать, это уже от вас зависит, от ваших вкусов и религии

Добавлено через 1 минуту

Именно. Но это не значит что нужно будет по сто раз нажимать Button.
тут как я понимаю главная проблема это записать данные из разных элементов формы в один файл.

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

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

так что главное это понять как все это в один файл впихнуть, чтобы потом открывать один файл а не два.

так что вот такая вот загогулина получается

Добавлено через 7 минут
удобнее было бы сохранять в один файл построчно, чтобы потом открывать файл по той схеме что вы приводили ранее. очень удобно было бы
0
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
24.09.2013, 14:43 20
Цитата Сообщение от coder8763 Посмотреть сообщение
тут как я понимаю главная проблема это записать данные из разных элементов формы в один файл.
Нет, проблем не вижу. Все очень элементарно.
Найду 15 мин, напишу код. А Вы пока сами подумайте как это реализовать, а потом посмотрите что из этого получиться)
1
24.09.2013, 14:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2013, 14:43
Помогаю со студенческими работами здесь

OpenDialog
чет не пойму совсем я...(( вообщем сохраняется все хорошо, а потом этот файл открыть не могу. Код:...

OpenDialog
подскажите как сделать чтобы OpenDialog открывался как-бы в корневой директории диска С:\

OpenDialog
Если я не выбираю файл в опен диалоге или нажимаю отмену выбивает ошибка программы, как сделать...

Компонент OpenDialog
Подскажите пожалуйста можно ли с помощью этого компонента выводить данные в грид с какой либо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru