Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.043 c
15-1161223351
SerJaNT
2006-10-19 06:02
2006.11.05
Яркость рисунка


5-1141155140
Чайник
2006-02-28 22:32
2006.11.05
Не ловятся сообщения от мышиного колесика WM_MOUSEWHEEL


2-1161179621
Ol&amp;Kot
2006-10-18 17:53
2006.11.05
Помогите написать прогу


15-1160649365
syte_ser78
2006-10-12 14:36
2006.11.05
Прошу оцень оффлайн-клиент форума


3-1157625300
tytus
2006-09-07 14:35
2006.11.05
Как получить привилегии поьзователя (допустим на SELECT).





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский