Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизКак обойти эту проблему Найти похожие ветки
← →
Popova (2003-11-02 17:22) [0]Создаю тип
Type TMyType=record
s:integer;
str:string;
end;
затем
var f:file of TMyType;
но при компиляции ошибка
Type "<name>" needs finalization - not allowed in file type
в хелпе написано что надо str:array [1..100] of char;
Это как нибудь можно обойти я ведь не знаю кокй длины заранее у меня будет str?
← →
Anatoly Podgoretsky (2003-11-02 17:28) [1]В типизированном файле все записи должно быть одинаковой длины!
Ну и чем тебя спарвка не устраивает? Если конечно теб нужно 100 символов.
← →
default (2003-11-02 17:52) [2]"Это как нибудь можно обойти я ведь не знаю кокй длины заранее у меня будет str?"
ну если, к примеру, у тебя все строки не длинее 100 символов, можешь описать их как "str:array [1..100] of char" и воспринимать файлы таких записей как типизированные если, конечно, память не жалко или что-то ещё...
← →
Юрий Федоров (2003-11-02 18:30) [3]Либо str: ShortDtring;
либо str:string[100];
либо str: array [1..100] of char
Либо не использовать file of TMyType, а например TFileStream
← →
Gero (2003-11-02 19:07) [4]Я тоже когда-то сталкивался с этой проблемой. Один из возможных вариантов решения:
type TMyType = record
S : Integer;
Str : String;
end;
var
MyR : TMyType;
F : file;
begin
AssignFile(F, "MyFile.my");
Reset(F, 1);
BlockRead(F, MyR, SizeOf(MyR));
CloseFile(F);
end.
Кроме того, если известно, что Str не больше 256 символов, используй Str : ShortString. Тогда ошибки не возникает.
← →
Palladin (2003-11-02 22:19) [5]нда
> Gero © (02.11.03 19:07) [4]
твой вариант ошибочный абсолютно
← →
default (2003-11-02 22:24) [6]Palladin © (02.11.03 22:19) [5]
прикинь это один из возможных вариантов решения, рискну предположить, что он выбрал наилучший, какие же остальные...
Gero © (02.11.03 19:07) [4]
записывается(считывается) указатель на строку, а не сама строка(в файл/из файла)
← →
Gero (2003-11-02 22:36) [7]Я использовал это, когда надо было считать/записать дин. массив в файл. Потому как при использовании array of SomeType в record и попытке объявить F : TMyType возникала та же ошибка.
← →
Palladin (2003-11-03 01:59) [8]Ну типа хорошо... можешь юзать дальше свой способ... лично я не против...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c