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

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

17.05.2014, 20:41. Показов 8996. Ответов 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,977
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,977
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,977
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,977
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,977
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,977
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,977
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,977
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,977
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
Ответ Создать тему
Новые блоги и статьи
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru