Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2007, 17:59   #1
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
Восклицание ошибка, после того как я создал запись 'fayl'

Кто знает, что за ошыбка :
Type 'fayl' needs finalization - not allowed in file type

выбило после того как я создал запись 'fayl' , и пытался присвоить переменной
F : file of fayl;
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 29.03.2007, 20:03   #2
Kostyan
Пользователь
 
Аватар для Kostyan
 
Регистрация: 25.03.2007
Сообщений: 18
По умолчанию

Скорее всего где-то синтаксическая ошибка проверь текст модуля
Kostyan вне форума Ответить с цитированием
Старый 29.03.2007, 20:33   #3
Umen
Форумчанин
 
Аватар для Umen
 
Регистрация: 10.11.2006
Сообщений: 189
По умолчанию

Файловой переменно нельзя ничего присваивать. нужно так:

Код:
type
     fayl = record
        ...
     end;
 
var
  F: file of fayl;
 
.......
procedure write;
var
  fil: fayl;
begin
    assignFile(F, 'somefile.txt');
    rewrite(F);
    fayl := ......
    write(f, fayl);
    closefile(f);
end;
Umen вне форума Ответить с цитированием
Старый 30.03.2007, 12:35   #4
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

Цитата:
Сообщение от Umen Посмотреть сообщение
Файловой переменно нельзя ничего присваивать. нужно так:

Код:
type
     fayl = record
        ...
     end;
 
var
  F: file of fayl;
 
.......
procedure write;
var
  fil: fayl;
begin
    assignFile(F, 'somefile.txt');
    rewrite(F);
    fayl := ......
    write(f, fayl);
    closefile(f);
end;

с этих слов я ничего не понял, вить у меня всё так жэ,
а что за fil вообще непонимаю???
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 30.03.2007, 14:50   #5
ЧИЖ
Форумчанин
 
Аватар для ЧИЖ
 
Регистрация: 24.02.2007
Сообщений: 104
Восклицание

Все намного проще!!!

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

если в записи есть массив динамической длинны или string или что еще хуже pchar то придется их ограничить - массив задать постоянным, строке задать макс длину и т п.
Разберемся.......
ЧИЖ вне форума Ответить с цитированием
Старый 30.03.2007, 16:39   #6
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

есть два string , и вот ещё вопрос :
Как поместить содержымое Memo1(например) в переменную, чтобы потом можно было вернуть всё назад в это жэ Memo???

и что главное, чтобы строки были в том жэ положэнии.
Можэт попробывать динамически както создать их (переменные) , но как их в запись определить?
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?

Последний раз редактировалось ZhekON; 30.03.2007 в 16:42.
ZhekON вне форума Ответить с цитированием
Старый 30.03.2007, 21:45   #7
ЧИЖ
Форумчанин
 
Аватар для ЧИЖ
 
Регистрация: 24.02.2007
Сообщений: 104
По умолчанию

ну две твоих строки надо ограничить таким образом: вместо string например string[100] (к-во от 1 до 255) сколько хочешь

а прогой они будут обрабатываться также как и неограниченные

а для отображения на форме (в любом виде) я бы создал дублирующий буфер, и записывал бы полученные данные в него а на форму выводил отдельной процедурой, и соответственно все операции делал бы над буфером, и при необходимости отобразить изменения отображал бы все сразу, помоему так удабнее и надежнее.
Разберемся.......
ЧИЖ вне форума Ответить с цитированием
Старый 30.03.2007, 22:55   #8
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

да, это всё хорошо, но я немного не понимаю, кинь код , а я там ужэ както разберусь

Я тожэ думал через буфер, дажэ думал использовать длинные строки...
ну так код бросиш?
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 31.03.2007, 10:21   #9
ЧИЖ
Форумчанин
 
Аватар для ЧИЖ
 
Регистрация: 24.02.2007
Сообщений: 104
По умолчанию

Как я тебе кину код если я незнаю че тебе точно надо,
приколи сначала суть задачи, и описание своего типа fayl,
а я дальше подумаю че тебе сделать
Разберемся.......
ЧИЖ вне форума Ответить с цитированием
Старый 31.03.2007, 10:48   #10
sis
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 16
По умолчанию

Код:

type
     fayl = record
        
         ...
     end;
 
var
  F: file of fayl;
 
.......
procedure write;
var
  fil: fayl;
begin
    assignFile(F, 'somefile.txt');
    rewrite(F);
    fayl := ......                //Не у кого подазрений не вызвало???
    write(f, fayl);
    closefile(f);
end;


Как имени типа можно что-то присвоить!? Там должна быть твоя переменная fil!!! И в write тоже!! Т.е.

Код:
const lenstr=256;
type
     fayl = record
        s:string[lenstr];
        ...
     end;
 
var
  F: file of fayl;
 
.......
procedure writeFayl;  //к примеру
var
  fil: fayl;
begin
    assignFile(F, 'somefile.txt');
    rewrite(F);
    fil := ......                
    write(f, fil);
    closefile(f);
end;
И конечно динамические структуры надо ограничить явно!Жесткий диск-это не динамический носитель!!! И имя процедуры я бы поменял!!!
Я бы сделал так!!!

Последний раз редактировалось sis; 31.03.2007 в 10:51.
sis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли после аварийного закрытия приложения внести/удалить запись из файла Ramires Общие вопросы Delphi 9 06.08.2008 10:38
Ошибка после перевода проекта Dr_Elvis Общие вопросы C/C++ 3 24.07.2008 14:27
Ошибка после воспроизведения mp3-мелодий Митяй2 Мультимедиа в Delphi 14 21.10.2007 11:30