Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мемо в типизорованном файле. [D2005, 2000]


Страницы:   1 2

pkm ©   (2006-10-17 13:06:00) 

Доброе время суток. Подскажите можно ли в типизированном файле сделать пит поля мемо? Спасибо за внимание.


RASkov   (2006-10-18 15:43:00) [1]

> [18] Думкин ©   (18.10.06 05:58)

Не зачто. Это не Вам было написано:)


@!!ex   (2006-10-18 10:07:00) [2]


> Что значит "динамического размера" ? И вообще, любой тип
> имеет конкретный размер, причём известный во время компиляции
> и неизменяемый.

Читать надо внимательнее.


pkm   (2006-10-18 10:04:00) [3]

Ясно.


Сергей М.   (2006-10-18 09:43:00) [4]


> Тип byte это целый тип данных и диапазон значений от 0 до
> 255, как в него засунуть мемо


Никак.
А как это вообще связано с первоначальным вопросом ?
Как MEMO связан с [7] ?


pkm   (2006-10-18 09:34:00) [5]

Я, наверное, не до понимаю. Тип byte это целый тип данных и диапазон значений от 0 до 255, как в него засунуть мемо. В мемо может быть много строк длинной в 255 знаков и тип string? Как быть?


Думкин   (2006-10-18 05:58:00) [6]


> @!!ex ©   (17.10.06 21:50) [13]

В чем проблема? зачем предположения? Создай проект - внеси мой код. Удивись. :)

> В файл запишется указатель на memo1.

Да ради бога. Спасибо за подъем век.


Anatoly Podgoretsky   (2006-10-18 00:21:00) [7]


> Но ведь объект динамического размера!

Задай буфер известного размера в несколько килобайт и пиши блоками фиксированого размера.


RASkov   (2006-10-17 22:37:00) [8]

> В файл запишется указатель на memo1.

Т.е. в файл запишется четыре байта - указатель на memo1.


RASkov   (2006-10-17 22:36:00) [9]

> Как обычно:
> var f : file of TMemo;
>
> assignfile(f,'........');
> rewrite(f);
> write(f,memo1);
> closefile(f);


> Но ведь объект динамического размера!


В файл запишется указатель на memo1.

При обявлении файловой переменной - тип должен быть "законченным" как его там. Т.е. String (по умолчанию), динам. массивы не прокатют.

type
Data = record
s: String;
arr: array of Byte;
end;

DataFile = record
s: String[255];
arr: array [Byte] of Byte;
end;

var
F: file of Data;     //ошибка
F1: file of DataFile;//так нормально


guav   (2006-10-17 21:58:00) [10]

> Но ведь объект динамического размера!

Что значит "динамического размера" ? И вообще, любой тип имеет конкретный размер, причём известный во время компиляции и неизменяемый.

> Предполагаю что выделится место только для статичных данных,
> а все динамические данные не сохранятся(строки, например)

Зачем предполагать, тут всё очевидно, достаточно знать основы Delphi Language.


@!!ex   (2006-10-17 21:50:00) [11]


var
 F:le of TMemo;

Но ведь объект динамического размера!
Как можно задать в качестве типизации тип неизвестного размера?
Предполагаю что выделится место только для статичных данных, а все динамические данные не сохранятся(строки, например).


Anatoly Podgoretsky   (2006-10-17 21:10:00) [12]

Можно, но так делать не стоит.
Мемо кстати прекрасно сохраняется в текстовый файл, одной командой.
С чего бы возникла такая идея?


clickmaker   (2006-10-17 13:47:00) [13]


> [10] pkm   (17.10.06 13:42)

а что собственно нужно-то?


pkm   (2006-10-17 13:42:00) [14]

А может кто подскажет адреса, где почитать можно подробненько на эту тему? спасибо за внимание.


Desdechado   (2006-10-17 13:38:00) [15]

Сергей М. ©   (17.10.06 13:34) [8]
Силен :)
так закрутил, что с первогораза не вникнешь...

pkm   (17.10.06 13:22) [7]
Если твое "к примеру" брать, то сохранять можно. Т.к. там строки фиксированной длины. (только скобки квадратные, а не угловые нужны)


Сергей М.   (2006-10-17 13:34:00) [16]


> pkm   (17.10.06 13:22) [7]


> типизированный файл это файл такого вида


Тут тебя может ждать страшная засада: "типизированность" файла как объекта с т.з. Делфи (Паскаля) никак не соотносится со "структурированностью" содержимогофайла как объекта ОС.

Случай [7] есть частный случай, он подразумевает что переменная mFile с т.з. Паскаля описывает типизированный файл, содержимое которого планируется интерпретировать как содержимое структурированного файла.


pkm   (2006-10-17 13:22:00) [17]

типизированный файл это файл такого вида
type
   Rec = packed record
   Name1: string<25>;
   name2: string<25>;
 end;
var
 mFile: file of Rec;
к примеру.


Desdechado   (2006-10-17 13:21:00) [18]

Если File of <xxx>, то не получится безразмерные строки сохранять.
Причина - требуется одинаковая длина одного типового элемента сохранения (пусть и из несколькихполей состоящего).


Думкин   (2006-10-17 13:21:00) [19]


> pkm   (17.10.06 13:17) [3]
> А как это будет выглядеть?

Как обычно:
var f : file of TMemo;

assignfile(f,'........');
rewrite(f);
write(f,memo1);
closefile(f);


Сергей М.   (2006-10-17 13:18:00) [20]


> можно ли в типизированном файле


Надеюсь что у тебя нет путаницы в терминах "типизированный файл" и "структурированный файл"


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо