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

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

17.05.2014, 20:41. Показов 9083. Ответов 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
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
21.05.2014, 23:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Greens239 Посмотреть сообщение
не сохраняются форматирование в Trich edit
Да, RichEdit не сохраняет форматирование. Это придется делать отдельно. Например, получать текст в формате RTF и сохранять его в строковое св-во, а потом грузить обратно в RichEdit.
Цитата Сообщение от Greens239 Посмотреть сообщение
и кнопки Tbitbtn
В моем коде меняется владелец только компонентов, лежащих непосредственно на компоненте-основании, а БитБаттоны лежат на доп. панели - это надо учитывать и менять их владельца тоже.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
22.05.2014, 01:17  [ТС]
FIL, Менять владельца при создании или при сохранении?

Добавлено через 1 минуту
FIL, TPanel = class(ExtCtrls.TPanel) Вот вы здесь описали класс, можете подробнее расписать, что значит каждое слово, ну первое как я понимаю имя класса= class(А в скобке что такое?)

Добавлено через 1 час 17 минут
FIL, Вообщем я все сделал, осталась это проблемка с сохранением атрибутов текста и панельки с кнопками.
Можно как-то иначе сохранить атрибуты, не применяя RTF файл?

Добавлено через 1 час 17 минут
FIL, Вообщем я все сделал, осталась это проблемка с сохранением атрибутов текста и панельки с кнопками.
Можно как-то иначе сохранить атрибуты, не применяя RTF файл?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
22.05.2014, 08:44
Цитата Сообщение от Greens239 Посмотреть сообщение
Менять владельца при создании или при сохранении?
В твоем случае достаточно при динамическом создании кнопок задать им того же владельца, что и у панели на которой они лежат.
Цитата Сообщение от Greens239 Посмотреть сообщение
что значит каждое слово
TPanel - класс-предок
ExtCtrls - модуль, в котором он описан
Цитата Сообщение от Greens239 Посмотреть сообщение
Можно как-то иначе сохранить атрибуты, не применяя RTF файл?
Файл и не нужен. Достаточно сохранить текст из RichEdit в поток, а потом в какой-нибудь StringList или просто строку.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
22.05.2014, 09:47  [ТС]
FIL, А так сохранится форматирование ?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
22.05.2014, 12:39
Цитата Сообщение от Greens239 Посмотреть сообщение
А так сохранится форматирование ?
Да.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
23.05.2014, 01:28  [ТС]
FIL, Тут еще моментик один с текстом уточнить хочу, а как потом узнать из какого в какой trich edit его подгружать?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
23.05.2014, 08:37
Цитата Сообщение от Greens239 Посмотреть сообщение
как потом узнать из какого в какой trich edit его подгружать
Не очень понял вопрос.
У каждого набора свой RichEdit и свое св-во, где хранится текст из него (должно быть).
Соответственно, текст строки, хранящейся в св-ве набора, ты переносишь обратно в RichEdit этого же набора.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
23.05.2014, 08:38  [ТС]
FIL, НО он там не один будет
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
23.05.2014, 08:39
Цитата Сообщение от Greens239 Посмотреть сообщение
НО он там не один будет
А сколько? Заранее не известно?
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
23.05.2014, 08:40  [ТС]
FIL, Да, именно так
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
23.05.2014, 08:50
Тогда добавь это св-во в сам RichEdit:
Delphi
1
2
3
4
5
6
7
type
  TRichEdit = class(ComCtrls.TRichEdit)
  private
    FRTFStr: String;
  published
    property RTFStr: String read FRTFStr write FRTFStr;
  end;
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
23.05.2014, 23:39  [ТС]
FIL, Выдало сообщение, что данный класс уже существует. Если можно, пожалуйста ответьте с комментариями в коде, а то я не совсем пока понимаю классы и.т.д, заранее спасибо.

Добавлено через 51 минуту
FIL,
Delphi
1
2
3
for i:= 0 to panforsound.ComponentCount-1 do
      if panforsound.Components[i] is Tmediaplayer then
      panforsound.Components[i].Owner:=scroll;
ЗДесь хочу сменить владельца компонента медиаплеер перед сохранением, чтобы сохранился и при открытии появился на панели panforsound, но увы не компилит.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
24.05.2014, 00:03
Цитата Сообщение от Greens239 Посмотреть сообщение
Выдало сообщение, что данный класс уже существует.
Есть такое дело. Почему так происходит - я не знаю, но если ошибку подавить, то все работает:
Delphi
1
2
3
4
  try
    RegisterClass(TRichEdit);
  except
  end;
Сохранение форматирования RichEdit можно сделать так:
Delphi
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
type
  TRichEdit = class(ComCtrls.TRichEdit)
  private
    function GetRTF: String;
    procedure SetRTF(ARTF: String);
  published
    property RTF: String read GetRTF write SetRTF;
  end;
 
...
 
function TRichEdit.GetRTF: String;
var
  SS: TStringStream;
begin
  Result := '';
  SS := TStringStream.Create('');
  try
    Lines.SaveToStream(SS);
    Result := SS.DataString;
  finally
    SS.Free;
  end;
end;
 
procedure TRichEdit.SetRTF(ARTF: String);
var
  SS: TStringStream;
begin
  SS := TStringStream.Create(ARTF);
  try
    Lines.LoadFromStream(SS);
  finally
    SS.Free;
  end;
end;
Цитата Сообщение от Greens239 Посмотреть сообщение
ЗДесь хочу сменить владельца компонента медиаплеер
Owner - свойство только для чтения. Так его не поменять.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
24.05.2014, 00:04  [ТС]
Решил уже проблему не через смену владельца.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
29.05.2014, 00:38  [ТС]
FIL, Простите, давно было, но не могли бы вы последний ваш код прокомментировать ?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
29.05.2014, 09:20
Цитата Сообщение от Greens239 Посмотреть сообщение
последний ваш код прокомментировать
В том коде РичЕдиту добавляется св-во RTF для получения текста из самого РичЕдита в формате rtf.
Для чтения этого св-ва используется ф-ция GetRTF, в которой текст РичЕдита сохраняется в поток, а из потока выдается как результат работы ф-ции в нужном формате.
Для записи этого св-ва используется процедура SetRTF(ARTF: String), которая строку ARTF преобразует в текст РичЕдита.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
29.05.2014, 11:02  [ТС]
FIL, Простите за тупость, но где ошибку нужно подавить? в каком месте кода?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
29.05.2014, 11:04
Лучший ответ Сообщение было отмечено Greens239 как решение

Решение

В OnCreate - там, где другие классы регистрируешь.
Вот проект с РичЕдитом:
Вложения
Тип файла: rar ReadWriteComponents.rar (3.1 Кб, 1 просмотров)
2
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 176
29.05.2014, 11:09  [ТС]
FIL, Спасибо, благодаря вам смог завершить свой курсовой
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
29.05.2014, 12:21
Цитата Сообщение от Mawrat Посмотреть сообщение
BlockWrite(F, S[1], Size); //Записываем в файл сами текстовые данные.
Mawrat, почему нужно указывать S[1], а не просто S ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2014, 12:21

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты 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, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru