Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
10 / 1 / 0
Регистрация: 13.08.2013
Сообщений: 70

C++ Builder 6, запись в файл

11.01.2015, 20:28. Показов 1131. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
тест.zip

Доброго времени суток,подскажите пожалуйста почему в файл добавляется только фамилия имя с главной формы,а с формы 1(CheckBox1) не добавляется ничего?
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
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if (count==1||count==0){
count=0;}
vop=1  ;
oshib==1;
Form1->CheckBox5->Enabled=true;
 Form1->CheckBox6->Enabled=true;
 Form1->CheckBox7->Enabled=true;
 Form1->CheckBox8->Enabled=true;
 
 AnsiString file = "d:\\log.txt";
        AnsiString temp =Label2->Caption; // ???????????? ??????
        TStringList *list1 = new TStringList;  // 1? TStringLis
        list1->Add(temp); //
         // если файл уже существует
            TStringList *list2 = new TStringList; // 2й TStringLis для существующего файла
            list2->LoadFromFile(file); // загружаем существующий файл
            list2->Add("***************************************"); // вроде как разделить добавляем
            list2->Text = list2->Text + list1->Text; // к загруженному файлу добавляем новые записи
            list2->SaveToFile(file); // сохраняем
            delete list2; // чистим за собой
 
        delete list1; // чистим за собой

}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2015, 20:28
Ответы с готовыми решениями:

C++ Builder Запись из файла
Нужно сделать так, чтобы в компонент CheckBox брались пункты (Items) из текстового файла txt.

Borland C++ Builder 3.1 запись и переход
программа такая: при щелчке мыши записываются её координаты х и у, при следующем щелчке, соответственно, уже другие координаты, как сделать...

Запись в файл - проверить, не идет ли в него запись, чтобы не генерировалось исключение
Доброе время суток! Вот такой пример: Imports System Imports System.IO Module Module1 Public Class LogWriter

9
Модератор
 Аватар для D1973
9909 / 6446 / 2455
Регистрация: 21.01.2014
Сообщений: 27,364
Записей в блоге: 3
11.01.2015, 22:02
Честно говоря, смысл этого кода от меня ускользает...
А нельзя вот это так записать?..
C++
1
2
3
4
5
6
7
8
AnsiString temp =Label2->Caption; 
// если файл уже существует
TStringList *list2 = new TStringList; // 2й TStringLis для существующего файла
list2->LoadFromFile(file); // загружаем существующий файл
list2->Add("***************************************"); // вроде как разделить добавляем
list2->Add(temp)
list2->SaveToFile(file); // сохраняем
delete list2; // чистим за собой
1
10 / 1 / 0
Регистрация: 13.08.2013
Сообщений: 70
12.01.2015, 13:56  [ТС]
можно и так,но с проверкой на наличие файла сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
  AnsiString file = "d:\\log.txt";
        AnsiString temp = Label2->Caption;
        TStringList *list1 = new TStringList;
        if (FileExists(file))
        {
                list1->LoadFromFile(file);
                list1->Add("***************************************");
        }
        list1->Add(temp);
        list1->SaveToFile(file);
        delete list1;
сохранил,перезагрузил комп все заработало,
PS builder 6 на вин8

Добавлено через 13 часов 44 минуты
А еще,если не сложно,один вопрос,как сделать,что бы при нажатии например CheckBox1
записывался его capton?делал так,но не сработало
C++
1
2
3
4
5
AnsiString otvet;
         if(CheckBox1->Checked==true){
         otvet=CheckBox1->Caption;  }
AnsiString temp = Label2->Caption+"\nВерный вариант ответа:"+CheckBox4->Caption+
        "\n Ваш ответ:"+otvet;
Добавлено через 49 минут
Причем,с записью все нормально,не проходит условие на проверку на нажатие checkbox1
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
12.01.2015, 14:06
Где именно находится приведенный код? Если в обработчике CheckBox1Click, то все должно работать...
0
10 / 1 / 0
Регистрация: 13.08.2013
Сообщений: 70
12.01.2015, 14:10  [ТС]
он находится в обработчике по нажатию кнопки,
в самом Checkbox неудобно,тк чек боксов несколько,и может смешаться с другим
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
12.01.2015, 14:17
Цитата Сообщение от 1vlad Посмотреть сообщение
чек боксов несколько,и может смешаться с другим
Поэтому делается очень просто: пишется один обработчик OnClick для чекбокса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
    TCheckBox *cbx = static_cast<TCheckBox*>(Sender); // Чтобы работать именно с тем чекбоксом, по которому щелкнули
 
    AnsiString otvet;
    if (cbx->Checked)
    {
        otvet = cbx->Caption;
    }
    AnsiString temp = Label2->Caption + "\nВерный вариант ответа:" +
        CheckBox4->Caption + "\n Ваш ответ:" + otvet;
}
и назначается всем остальным (прямо в инспекторе объектов), по клику на которые надо делать это действие...
1
10 / 1 / 0
Регистрация: 13.08.2013
Сообщений: 70
12.01.2015, 14:22  [ТС]
Спасибо,буду разбираться. А на всякий случай спрошу,через обработчик кнопки нельзя сделать?
0
Модератор
 Аватар для D1973
9909 / 6446 / 2455
Регистрация: 21.01.2014
Сообщений: 27,364
Записей в блоге: 3
12.01.2015, 14:30
И при нажатии кнопки этот код работает...
Цитата Сообщение от 1vlad Посмотреть сообщение
тк чек боксов несколько
и для каждого чекбокса ты хочешь делать аналогичную проверку? Не проще ли опросить все чекбоксы и указать в ответе, какой выделен...
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String otvet;
  for(int i = 0; i < ControlCount; i++)
   if(Controls[i]->ClassNameIs("TCheckBox"))
    if(((TCheckBox*)Controls[i])->Checked)
     otvet=((TCheckBox*)Controls[i])->Caption;
  String temp = Label2->Caption + "\nВерный вариант ответа:"+CheckBox4->Caption+ "\nВаш ответ:"+otvet;  
  ShowMessage(temp);
}
Другое дело, что в этом случае будет указан только последний выделеный чекбокс, т.е. если выделены 2-й и 3-й, то напишет, что выделен только 3-й.
Если ты делаешь что-то вроде теста, где присутствует только 1 правильный вариант, то имеет смысл посмотреть в сторону RadioGroup.
1
10 / 1 / 0
Регистрация: 13.08.2013
Сообщений: 70
12.01.2015, 14:53  [ТС]
именно это и смущало,поэтому вынес в обработчик кнопки,а ответов может быть несколько.Думаю сейчас над условием на обнуление переменной,при новом вопросе

Добавлено через 13 минут
тут ControlCount-это количество чекбоксов?

Добавлено через 8 минут
Всем спасибо,все получилось.PS я дебил-писал все вместо батонклик в форм криейт,по невнимательности,соответственно чекбоксы и не реагировали
0
Модератор
 Аватар для D1973
9909 / 6446 / 2455
Регистрация: 21.01.2014
Сообщений: 27,364
Записей в блоге: 3
12.01.2015, 15:16
Цитата Сообщение от 1vlad Посмотреть сообщение
тут ControlCount-это количество чекбоксов?
Нет, это вообще количество компонентов на форме...
А вот если очередной компонент при переборе - это Чекбокс (строчка
C++
1
if(Controls[i]->ClassNameIs("TCheckBox"))
, тогда берем этот компонент и проверяем, взведен он или нет, если введен - берем его кэпшн и т.д.

Добавлено через 1 минуту
Цитата Сообщение от 1vlad Посмотреть сообщение
Думаю сейчас над условием на обнуление переменной,при новом вопросе
При новом вопросе обнуляются все чекбоксы...
C++
1
2
3
for(int i = 0; i < ControlCount; i++)
   if(Controls[i]->ClassNameIs("TCheckBox"))
    ((TCheckBox*)Controls[i])->Checked = false;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.01.2015, 15:16
Помогаю со студенческими работами здесь

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

Запись звука в С++ Builder с использованием bass.dll
Здравствуйте. Столкнулся с такой проблемой : не могу разобраться с примером на Delphi ( пример прилагающийся к библиотеке bass). Большая...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Как разрешить запись в файл, по умолчанию запись не разрешена
Помогите! НАчинающий php - программист. Как разрешить запись в файл, по умолчанию запись не разрешена. Вот что пишет: Warning:...

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде
Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в файл 2. У меня получается бред какой-то,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru