Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 5
1

Сохранение(загрузка) свойств элементов формы в файл

24.08.2011, 11:42. Показов 4797. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Необходимо реализовать взможность сохрнения/загрузки свойств элементов ComboBox (itemindex), Label(caption) и Edit(text) в/из одного файла(разрешение не имеет значения).
з.ы. в Edit цифровая информация
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2011, 11:42
Ответы с готовыми решениями:

Загрузка и сохранение в двоичный файл
Вот код, он полностью рабочий, просто под конец заметил, что загрузка, сохранение должны...

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

Сохранение и загрузка в бинарный файл
Доброго времени суток. Прошу помочь с сохранением/загрузкой в/из файла. Есть два класса: ...

Массив стуктур - загрузка/сохранение в файл
Всем привет, Есть обыкновенный массив структур, например: struct lists1 { long int name;...

7
829 / 353 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
24.08.2011, 17:54 2
zzzot, как вариант использовать ini или xml файлы
1
Заблокирован
Автор FAQ
24.08.2011, 18:25 3
Цитата Сообщение от zzzot Посмотреть сообщение
Здравствуйте! Необходимо реализовать взможность сохрнения/загрузки свойств элементов ComboBox (itemindex), Label(caption) и Edit(text) в/из одного файла(разрешение не имеет значения).
з.ы. в Edit цифровая информация
- Как вариант сделай класс аля CControlsCaptoins
Какждый раз при запуске програмы, одним из метода данного класса проверяй наличие файла параметров (этот файл можешь куда угодно в системе запихнуть, не обзательно рядом с программой держать), если данного файла нет, значит устанавливаешь элементам их свойства по умолчанию, например в эдит пишешь ноль, а в комбобоксе ставишь курсор в 0-ую позицию. Если при запуске файл найден, друим методом CControlsCaptoins считатй какие параметры в нём есть (айл понятное дело дожен быть структурирован)
К примеру
Caption.ini

BEGIN>
CombboCursorPos 5
EditValue 256
ShowButton 0
END


Если какогото параметра нет то значит єтот контрол инициализируем по умолчанию, вот и все дела

Добавлено через 21 секунду
Цитата Сообщение от zzzot Посмотреть сообщение
Здравствуйте! Необходимо реализовать взможность сохрнения/загрузки свойств элементов ComboBox (itemindex), Label(caption) и Edit(text) в/из одного файла(разрешение не имеет значения).
з.ы. в Edit цифровая информация
- Как вариант сделай класс аля CControlsCaptoins
Какждый раз при запуске програмы, одним из метода данного класса проверяй наличие файла параметров (этот файл можешь куда угодно в системе запихнуть, не обзательно рядом с программой держать), если данного файла нет, значит устанавливаешь элементам их свойства по умолчанию, например в эдит пишешь ноль, а в комбобоксе ставишь курсор в 0-ую позицию. Если при запуске файл найден, друим методом CControlsCaptoins считатй какие параметры в нём есть (айл понятное дело дожен быть структурирован)
К примеру
Caption.ini

BEGIN>
CombboCursorPos 5
EditValue 256
ShowButton 0
END


Если какогото параметра нет то значит єтот контрол инициализируем по умолчанию, вот и все дела
1
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 5
24.08.2011, 19:06  [ТС] 4
на счет ини копал. можно ли его сохранять через диалоговое окно сохранения?
просто суть в чем... нужна возможность сохранения свойств для последующей загрузки из этих файлов(диалогом открытия соответственно)

Добавлено через 4 минуты
либо, как вариант, программа будет работать с отдельным файлом(тот же caption.ini) но с возможностью сохранить в другой через диалог

Добавлено через 33 минуты
реализовал с ini файлом. подскажите как вывести сохранение и загрузку через диалоговое окно)
0
Mobile Developer
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
24.08.2011, 20:57 5
Цитата Сообщение от zzzot Посмотреть сообщение
на счет ини копал. можно ли его сохранять через диалоговое окно сохранения?
просто суть в чем... нужна возможность сохранения свойств для последующей загрузки из этих файлов(диалогом открытия соответственно)

Добавлено через 4 минуты
либо, как вариант, программа будет работать с отдельным файлом(тот же caption.ini) но с возможностью сохранить в другой через диалог

Добавлено через 33 минуты
реализовал с ini файлом. подскажите как вывести сохранение и загрузку через диалоговое окно)
тот же принцип, что и работа с ини файлом из формы...
как пример при сохранении файла алгоритм будет обходить все контролы и записывать в буффер и потом сохронять под заданным именем
или как вариант , если настройки сохраняются "на лету" в главный файл, протсо копировать его под другим именм заданным в диалоговом окне.
1
Заблокирован
Автор FAQ
24.08.2011, 22:17 6
Цитата Сообщение от zzzot Посмотреть сообщение
ибо, как вариант, программа будет работать с отдельным файлом(тот же caption.ini) но с возможностью сохранить в другой через диалог
Добавлено через 33 минуты
реализовал с ini файлом. подскажите как вывести сохранение и загрузку через диалоговое окно)
Выкладываю простой MFC проект, по сохранению и загрузке состояния контролов окна.
Принцип такой - при нажатии кнопки сохранить хначение контролов в
C++
1
GetTempPath(MAX_PATH,sFilePath);
создаю файл CDlgCap.ini
(при желании этот файл можно редактировать самому)
При первом запуске или если не нажималась кнопка Сохранить значения контролов окно выскакивает не инициализированным, поэтому необходимо наать кнопку Заполнить элементы.
Можно выбирать позицую ComboBox и CheckBox-а (в программе есть несколько доп методов для работі с контролами, посмотришь сам). Так вот после того как контролы заполняться жмём Сохранить значения контролов, при повторном запуске программы контролы заполняться автоматом сами, чтобы их переинициализировать - сноа нажимаем Заполнить элементы

Загрузку и выгрузку значений контролов организовал с помощью класса CDlgCap
Листинг CDlgCap.h
C++
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
#include "stdafx.h"
#pragma once
 
class CDlgCap
{
private:
    char * sFileEntry;
    char sFilePath[MAX_PATH];
    CString sEditText;
    bool bCheck;
    long lComboPos;
public:
    CDlgCap();
    ~CDlgCap();
 
    bool Initialize();
    bool SaveCaption();
 
    CString getFilePath();
    CString getEditText();
    bool getCheck();
    long getComboPos();
 
    void setEditText(CString);
    void setCheck(bool);
    void getComboPos(long);
};
Листинг CDlgCap.cpp
C++
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "stdafx.h"
#include "CDlgCap.h"
#include <stdio.h>
 
CDlgCap::CDlgCap()
{
    GetTempPath(MAX_PATH,sFilePath);
    strcat(sFilePath,"CDlgCap.ini");
 
    sFileEntry = (char *)malloc(sizeof(char));
 
    sEditText = "NotInitialized";
    bCheck    = false;
    lComboPos = -1;
}
 
CDlgCap::~CDlgCap()
{
    if(sFileEntry)
        free(sFileEntry);
}
 
bool CDlgCap::Initialize()
{
    bool bRet = false;
    char * buf;
    long fLen = 0;
    FILE * f = fopen(sFilePath,"rb+");
    if(f)
    {
        fseek(f,0,SEEK_END);
        fLen = ftell(f);
        fseek(f,0,SEEK_SET);
 
        if(sFileEntry = (char *)realloc(sFileEntry,fLen + 1))
        {
            fread(sFileEntry,fLen,1,f);
            sFileEntry[fLen] = '\0';
            buf = strtok(sFileEntry,"\r\n");
            while(buf)
            {
                if(strstr(buf,"EDIT_TEXT"))
                    sEditText = buf + strlen("EDIT_TEXT");
                if(strstr(buf,"BOOLCHECK"))
                if(strstr(buf,"true") || strstr(buf,"TRUE"))
                    bCheck = true;
                if(strstr(buf,"COMBO_POS"))
                    sscanf(buf + strlen("COMBO_POS"),"%d",&lComboPos);
                buf = strtok(NULL,"\r\n");
            }
            if(16 < lComboPos)
                lComboPos = -1;
            bRet = true;
        }
        fclose(f);
    }
    return bRet;
}
 
CString CDlgCap::getFilePath()
{
    return sFilePath;
}
 
CString CDlgCap::getEditText()
{
    return sEditText;
}
 
bool CDlgCap::getCheck()
{
    return bCheck;
}
 
long CDlgCap::getComboPos()
{
    return lComboPos;
}
 
void CDlgCap::setEditText(CString sText)
{
    sEditText = sText;
}
 
void CDlgCap::setCheck(bool check)
{
    bCheck = check;
}
 
void CDlgCap::getComboPos(long lPos)
{
    lComboPos = lPos;
}
 
 
bool CDlgCap::SaveCaption()
{
    bool bRet = false;
    FILE * f = fopen(sFilePath,"wb+");
    if(f)
    {
        fprintf(f,"[CDlgCap.ini]\r\n%s\r\n","[BEGIN]");
        fprintf(f,"EDIT_TEXT %s\r\n",sEditText);
        fprintf(f,"BOOLCHECK %s\r\n",bCheck ? "TRUE" : "FALSE");
        fprintf(f,"COMBO_POS %d\r\n",lComboPos);
        fprintf(f,"%s","[END]");
        fclose(f);
        bRet = true;
    }
    return bRet;
}
Прикладываю проект, экзе и скрины работы
Миниатюры
Сохранение(загрузка) свойств элементов формы в файл   Сохранение(загрузка) свойств элементов формы в файл   Сохранение(загрузка) свойств элементов формы в файл  

Вложения
Тип файла: rar SCap.exe.rar (5.2 Кб, 26 просмотров)
Тип файла: rar SCap_proj.rar (10.1 Кб, 29 просмотров)
1
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 5
25.08.2011, 09:48  [ТС] 7
столкнулся с пробдлемкой) как назначить для сохранения файла ini каталог с программой)
если так
C++
1
2
3
4
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TIniFile *Ini = new TIniFile("Name.ini");
файл не создается
если прописать путь к каталогу с программой, все работает, но создается не Name.ini а ********Name.ini , где ******** даже пока не разобрал от куда)))

Добавлено через 18 минут
ок) кое-что нашел)
как мне привязать имя открываемого файла из события OnCanClose элемента SaveDialog с именем ini файла?

Добавлено через 38 минут
ура) все почти готово)
очередная кочка: как привязать расширение к имени файла при сохранении?))

Добавлено через 1 час 33 минуты
гг)следующая гора)
если выбрать папку(отдельную) для сохранения файла в каталоге программы, то прога начинает грузить картинку в форму(помимо эдитов и комбобоксов меняется имя картинки которая грузится из корневой папки) из этой отдельной папки а не из корневой.... как сделать загрузку из корня?

Добавлено через 6 часов 8 минут
неа... всетаки не работает. сохраняет только в файл, который прописан
C++
1
2
3
4
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TIniFile *Ini = new TIniFile("D:\Calculator Tal\calc\demo.rec");
тут
из него грузится все ровно. как сделать имя ini(у меня rec) изменяемым в процессе работы приложения?)
0
Заблокирован
Автор FAQ
25.08.2011, 11:08 8
Цитата Сообщение от zzzot Посмотреть сообщение
столкнулся с пробдлемкой) как назначить для сохранения файла ini каталог с программой)
- я с билдером скорее на Вы чем на Ты, касательно моего кода для перемещения файла настроек в каталог программы достаточно провести небольшую модернизацию
C++
1
2
3
4
5
6
CDlgCap::CDlgCap()
{
        //GetTempPath(MAX_PATH,sFilePath);
        /*strcat*/strcpy(sFilePath,"CDlgCap.ini");
        //далее всё по коду...
}
0
25.08.2011, 11:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2011, 11:08
Помогаю со студенческими работами здесь

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

Сохранение и загрузка данных из ListView в txt файл
Добрый вечер! Возникла проблема при сохранении данных таблицы компонента ListView в txt файл и...

Двусвязный список. Загрузка, сохранение в файл, сортировка по вводимому параметру
Здравствуйте! Нужна помощь с функцией загрузки информации из файла. Файл создается, информация...

Добавить к программе след действия: Сохранение и загрузка информации в текст. файл. Сохранение и загрузка информации в типизированный файл.
Помогите добавить к программе след действия: Сохранение и загрузка информации в текст. файл....


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

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