Форум: "Начинающим";
Текущий архив: 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.045 c