Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Мемо в типизорованном файле.   Найти похожие ветки 

 
pkm   (2006-10-17 13:06) [0]

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


 
Думкин ©   (2006-10-17 13:11) [1]

можно.


 
Джо ©   (2006-10-17 13:17) [2]

Смотря, что под этим имеется в виду. Хотя, я лично думаю, что  [1].


 
pkm   (2006-10-17 13:17) [3]

А как это будет выглядеть?


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


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


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


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


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

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

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


 
Desdechado ©   (2006-10-17 13:21) [6]

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


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

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


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


> pkm   (17.10.06 13:22) [7]


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


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

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


 
Desdechado ©   (2006-10-17 13:38) [9]

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

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


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

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


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


> [10] pkm   (17.10.06 13:42)

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


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

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


 
@!!ex ©   (2006-10-17 21:50) [13]


var
 F:le of TMemo;

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


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

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

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

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

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


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

> Как обычно:
> 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;//так нормально


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

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

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


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


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

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


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


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

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

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

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


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

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


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


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


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


 
pkm   (2006-10-18 10:04) [21]

Ясно.


 
@!!ex ©   (2006-10-18 10:07) [22]


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.063 c
2-1161163551
dim2001
2006-10-18 13:25
2006.11.05
строка колонка stringgrid


15-1160622507
КиТаЯц
2006-10-12 07:08
2006.11.05
Задержка в пакетном файле


2-1161531049
n0name
2006-10-22 19:30
2006.11.05
Delphi + DLL + printf = magic?


15-1161154388
Prohodil Mimo
2006-10-18 10:53
2006.11.05
Можно ли убрать писк в UPSe?


2-1161277797
funky
2006-10-19 21:09
2006.11.05
окно зависает