Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать property типа TextFile? Property:TextFile - как сделать? 
:(
    Опции темы
Radio
  Дата 21.2.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Сегодня попробовал создать свойство и написал че-то вроде следующего
type
TForm1=Tform;
..........
Function GetF:TextFile;
Procedure SetF(File_Name:TFileName);
Property F:TextFile read Getf write SetF
.......
Перед тем,как все это раскритиковать объясню чего я хотел:
OpenDialog.FileName дает мне имя файла для SetFile и яго пишу в F я его AssignFile и юзаю свойство как файловую переменную, а чтоб в любой момент можно было читать - пожалуйста, есть GetF.
Немного поумнев я понял, что нельзя делать GetF:TextFile; ну ладно с этим я смирился;
Далее окозалось, что параметр у SetF должен быть того же типа, что и property а параметр типа TextFile быть не может следовательно и property типа TextFile сделать нельзя.
Короче, тем кто во всей этой каше разобрался прямой вопрос: можно ли создать property:TextFile, а если можно, то как?

Это сообщение отредактировал(а) Radio - 21.2.2006, 21:08
PM MAIL   Вверх
Albinos_x
Дата 21.2.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Код

...
   Procedure GetF(F:TextFile);
   Procedure SetF(F:TextFile;File_Name:String);
...
var F:TextFile;


Это сообщение отредактировал(а) Girder - 22.2.2006, 11:13


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Radio
Дата 21.2.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Цитата

Procedure SetF(F:TextFile;File_Name:String);

Мне делфи на это ответил

File type not allowd here

что нелзя в параметрах процедуры давать TextFile. Только если Var написать. Ну написал, а он -

Property setters cannot take var parameters

Ну вот, а дальше что, раз такие дела???
PM MAIL   Вверх
Guedda
Дата 21.2.2006, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А что именно в процедуре пишешь?
У меня, допустим, все работает, и никаких ошибок не вылетает

Это сообщение отредактировал(а) Guedda - 21.2.2006, 21:32


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Radio
Дата 21.2.2006, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



procedure Set_File(F:TextFile);
property WorkFile:TextFile write Set_File;

вот это not allowd here

procedure Set_File(Var F:TextFile);
property WorkFile:TextFile write Set_File;


вот это cannot take var parameters;
smile

Это сообщение отредактировал(а) Radio - 22.2.2006, 00:22
PM MAIL   Вверх
Quadr0
Дата 22.2.2006, 01:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:07
  Вверх
Radio
Дата 22.2.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Цитата

А как вы собрались обед с забором совместить? TFileName и file это можно сказать огонь и вода,

Да я знаю, что FileName это не файл. Я хотел, чтоб было свойство в объекте и это свойство представляло из себя файловую переменную. Я конечно понимаю, можно обьявить глобальную переменную и ее юзать, но ведь это уже нето. А SetFile функцию хотел заюзать только вначале для Assign и Reset, а так в проге он больбще и не нужен. Параметр FileName:TFilName мне там понадобился, чтоб сразу из OpenFile в SetFile идальше пошло-поехало.
Ну да ладно, получается если
Цитата

Компилятор запрещает указание файла как такового в параметрах метода.

так не суждено мне объявить property:TextFile. Или можно, идея-то красивая была

PM MAIL   Вверх
Radio
Дата 23.2.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Ну так что, все таки это невозможно? А я водном учебнике читал, что ограничения на тип свойств нет, так что получается есть? smile
PM MAIL   Вверх
Quadr0
Дата 23.2.2006, 21:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:07
  Вверх
Radio
Дата 23.2.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Это понятно, что могу объявить, но мне-то нужны процедуры для read write и тип параметров этих процедур дожен совпадать с типом property то есть типа TextFile а это невозможно(для процедур еще как то можно, хотя и не получается через Var, а для функций, так вообще никак - не может быть функция типа TextFile).
Но ладно, я спорить не хочу - даже лучше, если можно, только теперь скажите мне пожалуйста - как, и желательно кодом на Delphi чтобы уже исключить различные побочные вопросы.
Как это сделать?
PM MAIL   Вверх
SoWa
Дата 23.2.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Код

var
f: text;
s: string;
begin
assignfile(f,'input.txt');
rewrite(f);
write(f,'Ерунда всякая!');
closefile(f);

reset(f);
readln(f, s);
closefile(f);
end;

Вот так и работать с файлом. Только Var описывай глобальный.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Radio
Дата 23.2.2006, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Да я не спрашиваю как работать с файло - я это все хорошо знаю.
Я прошу чтобы мне помогли объявить property типа TextFile в объекте.
Только просьба перед тем как приводить листинг проверить его в Delphi а то как я пробовал объявить с виду тож провильно, но Delphi выдаёт ошибки.
Так что помогите кто может.
Как это сделать?
PM MAIL   Вверх
Quadr0
Дата 24.2.2006, 02:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:08
  Вверх
Radio
Дата 24.2.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Спасибо за исчерпывающий ответ. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1297 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.