Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/39: Рейтинг темы: голосов - 39, средняя оценка - 4.64
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176

Считывание из файла

17.05.2014, 20:41. Показов 9049. Ответов 142
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имею файл с такой структурой
Delphi
1
2
3
4
type rec=record
images:array[0..99] of Tobject;
end;
var memorect:rec;
Заношу данные:
Delphi
1
2
3
4
5
6
7
8
9
rewrite(f);
for i:=0 to form1.componentcount-1 do
if form1.Components[i] is Tmemo then
begin
imagerec.images[j]:=form1.Components[i];
j:=j+1;
end;
write(f,imagerec);
closefile(f);
Как считать данные из такого файла?
спрашиваю, т.к
Delphi
1
2
reset(f);
read(f,memorec);
не заносит данные из файла в данную запись
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2014, 20:41
Ответы с готовыми решениями:

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

Считывание файла в массив и запись нового файла
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Считывание файла
как считать какой-нибудь текстовый файл, а потом что-нибудь записать в него? помогите, пожалуйста

142
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 16:19  [ТС]
Студворк — интернет-сервис помощи студентам
Та же ситуация

Добавлено через 41 секунду
Mawrat, Та же ситуация, не понятно, как передать свойства нужному компоненту.
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 16:33
Компоненты, которые надо загрузить из файла, я предварительно удаляю. Но при загрузке получаю ошибку с сообщением: "Class TImage not found".
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 16:34  [ТС]
Mawrat, И ничего нельзя сделать?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 16:35
Это связано с регистрацией классов, видимо.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 16:37  [ТС]
Mawrat, А у вас получилось придумать как определенному компоненту свойства передавать?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 16:37
Ага, эта проблема решена через вызов:
Delphi
1
2
3
  RegisterClass(TImage);
  RegisterClass(TPanel);
  RegisterClass(TSpeedButton);
Теперь остаётся решить вопрос с привязкой через Parent. Это сейчас сделаем.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 16:39  [ТС]
Mawrat, А если у меня например 3 картинки будет, оно не спутает свойства или там оно типо в какой последовательности сохранялось в такой и создается?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 16:42
Да - компоненты создаются в той же последовательности, в какой они были в файл записаны. Но в случае предварительно удаления компонентов, это не играет роли.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 16:43  [ТС]
Ну это я просто пытаюсь как то у себя в голове предугадать вашу реализацию
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 17:24
Уже получается. Сейчас доделаю...

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

Добавлено через 22 минуты
В общем, получается, что привязка обработчиков событий сохраняется в файл только, если мы в файл сохраняем саму форму... И читать тогда приходится всю форму целиком. Либо мудрить с анализом загружаемых из файла данных...
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 17:26  [ТС]
охохо, намудрил я так намудрил, а как лучше будет сделать, чтобы сохранить все это?

Добавлено через 31 секунду
Mawrat, охохо, намудрил я так намудрил, а как лучше будет сделать, чтобы сохранить все это?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 17:28
Вопрос по формулировке задания. Компоненты должны быть обязательно удалены с формы, а потом восстановлены? Или имеется в виду другое - что компоненты всегда остаются на форме, а нам надо только восстановить их содержание из файла?

Добавлено через 1 минуту
Проще всего - это тот вариант, который я ранее выложил. Там просто сохраняется всё что есть на форме. И потом всё полностью из файла загружается.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 17:28  [ТС]
Удалены, полностью, я как бы заново запускаю программу. в главном меню выбираю кнопочку открыть появляется диалог, и я там выбираю файлик открываю его и на форме появляются все компоненты.
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 17:30
Вернее, в том проекте даже делается так - по кнопке "Удалить" удаляются не все компоненты, а только некоторые. Но потом, когда мы должны восстановить удалённые компоненты, то на самом деле перед этим удаляются и те компоненты, которые ещё остались на форме и после этого всё полностью загружается из файла и создаётся заново.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 17:34  [ТС]
Но в моем случае можно удалить все, как я понял, так?

Добавлено через 1 минуту
Mawrat, где я вам картинку присылал, нажал на кнопочку сохранить , оно сохранилов форму файл, а когда нажимаю открыть, я просто удаляю все компоненты с формы и загружаю все обратно, только из файла ?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 17:35
Цитата Сообщение от Greens239 Посмотреть сообщение
Удалены, полностью, я как бы заново запускаю программу. в главном меню выбираю кнопочку открыть появляется диалог, и я там выбираю файлик открываю его и на форме появляются все компоненты.
Ну тогда можно брать тот вариант, что я раньше выложил: Считывание из файла
Он, как раз, подходит именно для этого - потому что и размер формы тоже, по идее, может поменяться.
И, кстати, там в 102 строке надо убрать строку:
Delphi
102
  Application.ProcessMessages;
Это в теле метода TForm1.LoadComponents(var Message: TWMChar). Та строка работу не нарушает, но она лишняя.

Добавлено через 1 минуту
Цитата Сообщение от Greens239 Посмотреть сообщение
Но в моем случае можно удалить все, как я понял, так?
Да, именно. Выше я, как раз, на этот счёт ответил - вполне подходит тот проект, который уже был выложен (по ссылке).
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 17:43  [ТС]
Но так как я удаляю все , то там этого сообщения не нужно отправлять?

Добавлено через 4 минуты
Mawrat, Но так как я удаляю все , то там этого сообщения не нужно отправлять?
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 17:46
Лучший ответ Сообщение было отмечено Greens239 как решение

Решение

Сообщение отправлять придётся - потому что там кнопка ведь есть, по которой запускается загрузка. Код обработчика события OnClick этой кнопки выполняется в её методе Click(). И надо сделать так, чтобы эта кнопка уничтожилась обязательно после того, как закончится выполнение этого метода Click(). Вот для этого и служит отправка сообщения.
1
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
18.05.2014, 17:48  [ТС]
Ах да, точно, разница будет лишь в том с вашим проектом , как я понимаю в местоположении кнопки?

Добавлено через 14 секунд
Mawrat, Ах да, точно, разница будет лишь в том с вашим проектом , как я понимаю в местоположении кнопки?

Добавлено через 37 секунд
Mawrat, Спасибо вам еще раз что потратили столько своего времени на помощь мне
1
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
18.05.2014, 18:01
Цитата Сообщение от Greens239 Посмотреть сообщение
Mawrat, Ах да, точно, разница будет лишь в том с вашим проектом , как я понимаю в местоположении кнопки?
Да - или кнопка, или пункт меню должен быть, через который отправляется сообщение.

Добавлено через 6 минут
Всё-таки гложут меня некоторые сомнения - а то ли мы делаем? Наверное программа работает со списком аудио файлов, которым можно сопоставлять изображения и тексты? Так? Тогда может просто надо создать механизм хранения такого списка. Элемент списка это: <аудио файл><изображение><текст>. И надо такой список сохранять и запоминать текущую позицию - какой элемент был активным на момент сохранения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2014, 18:01

Считывание из файла
как считать из файла число, в котором оно будет задаваться в виде ASCII графики где белый цвет обозначен символом &quot;.&quot;,...

Считывание из файла
Почему при считывании строк из файла циклом вида while (!feof(f)) { fgets(line, MAX, f); printf(&quot;%s\n&quot;, line); } ...

Считывание из файла в JS
Я много лет пишу на PHP.В PHP считывание из файла (грубое) достаточно легко выполняется. Пример: $a = &quot;tema&quot;; // переменная для...

Считывание с файла
Надо считать текстовый файл. Как мне задать условие остановки считывания, типо что дальше файл пустой? Чтоб не работал программа бесконечно.

Считывание из файла в С++
Всем доброго времени суток. Есть задача: Дан текстовый файл в котором записаны данные следующим образом 1 12 3 2 3 11 5 2 11 ...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru