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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте! Необходимо реализовать взможность сохрнения/загрузки свойств элементов ComboBox (itemindex), Label(caption) и Edit(text) в/из одного файла(разрешение не имеет значения).
з.ы. в Edit цифровая информация
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.08.2011, 11:42
Ответы с готовыми решениями:

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

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

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

7
 Аватар для insolent
829 / 353 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
24.08.2011, 17:54
zzzot, как вариант использовать ini или xml файлы
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.08.2011, 18:25
Цитата Сообщение от 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 минуты
либо, как вариант, программа будет работать с отдельным файлом(тот же caption.ini) но с возможностью сохранить в другой через диалог

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

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

Добавлено через 33 минуты
реализовал с ini файлом. подскажите как вывести сохранение и загрузку через диалоговое окно)
тот же принцип, что и работа с ини файлом из формы...
как пример при сохранении файла алгоритм будет обходить все контролы и записывать в буффер и потом сохронять под заданным именем
или как вариант , если настройки сохраняются "на лету" в главный файл, протсо копировать его под другим именм заданным в диалоговом окне.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.08.2011, 22:17
Цитата Сообщение от 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  [ТС]
столкнулся с пробдлемкой) как назначить для сохранения файла 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
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.08.2011, 11:08
Цитата Сообщение от zzzot Посмотреть сообщение
столкнулся с пробдлемкой) как назначить для сохранения файла ini каталог с программой)
- я с билдером скорее на Вы чем на Ты, касательно моего кода для перемещения файла настроек в каталог программы достаточно провести небольшую модернизацию
C++
1
2
3
4
5
6
CDlgCap::CDlgCap()
{
        //GetTempPath(MAX_PATH,sFilePath);
        /*strcat*/strcpy(sFilePath,"CDlgCap.ini");
        //далее всё по коду...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2011, 11:08
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru