Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

AssignFile(FS,   Найти похожие ветки 

 
BadBlock   (2002-11-25 05:19) [0]

Не уверен, что пишу точно по теме конференции.. но все же:
Что есть:
в теле процедуры объявляю переменную как текстовый файл, тоесть:
var
FS : TextFile;
дальше привязываю ее к пути ...
begin
AssignFile(FS, "c:\что-то там.тхт");
дальше все работает... и появляется кнопка "сначала"
идет обращение к той же процедуре, но путь теперь уже может быть другим... (он его из файла читает)
Компилятор мя посылает...
Что надо:
Либо Затирание всех переменных, которые есть в программе... (и этой соотв. тоже)
Либо возможность убрать только эту привязку...
Либо возможность изменить эту привязку...
То есть мне интересно есть ли что нибудь наподобии функции типа скажем UnAssign или AssignFile := false ...
Вот. Надеюсь меня поняли... буду благодарен за любую помощь.
Chester


 
trotski   (2002-11-25 05:56) [1]

Если ты открывал файл, то надо не забыть сделать closefile() , а потом просто снова assignFile(). То есть ты снова ассоциируешь файловую переменную с файлом на диске.


 
keymaster ©   (2002-11-25 06:00) [2]

Procedure MyProc;
var
FS : TextFile;
begin
AssignFile(FS, "C:\a.txt");
Reset(FS);
********
CloseFile(FS);
AssignFile(FS, "C:\b.txt");
Reset(FS);
********
CloseFile(FS);
end;


должно так работать :)


 
BadBlock   (2002-11-25 06:11) [3]

CloseFile привязки не снимает!


 
Song ©   (2002-11-25 07:25) [4]

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


 
Anatoly Podgoretsky ©   (2002-11-25 08:14) [5]

Вот это покажи "Компилятор мя посылает..."


 
mrcat ©   (2002-11-25 14:19) [6]

procedure Reset(var F [: File; RecSize: Word ] );


If F is a text file, F becomes read-only.


 
BadBlock   (2002-11-27 03:46) [7]

мдя... помощи хоть пруд пруди...
хоть ктоб один дельный совет дал...
Функция ClosFile просто закрывает файл, чтоб с ним другие файловые переменные могли работать, привязку первой переменной эта функция не снимает.. блин! Это вообще возможно или нет, мне ктонибудь скажет?


 
2ПлохойБлок   (2002-11-27 04:38) [8]

Не строй из себя слишком умного. Просто приведи ошибки и связанные с ними строки кода. Или точнее наоборот - строки и ошибки.


 
mumu   (2002-11-27 05:48) [9]

2BadBlock (25.11.02 06:11)
>CloseFile привязки не снимает!

Документация Delphi:
~~~~~~~~~~~~~~~~~~~~~~~~~
ищем "CloseFile procedure"

Описание:
procedure CloseFile(var F);
Use the CloseFile procedure instead of Close to terminate
the association between a file variable and an external disk file.
F is a file variable of any file type opened using Reset, Rewrite,
or Append. The external file associated with F is completely
updated and then closed, freeing the file handle for reuse.

Перевод:
Используйте процедуру CloseFile взамен Close для разрыва
ассоциации между файловой переменной и файлом на диске.
F является файловой переменной для любого типа файла открытого
с применением Reset, Rewrite, или Append. Внешний файл
ассоциированный с F полностью обновляется и затем закрывается,
ОСВОБОЖДАЯ дескриптор файла для ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ.


 
Anatoly Podgoretsky ©   (2002-11-27 08:13) [10]

BadBlock (27.11.02 03:46)
Помощь тебе явно не нужна, так как ты не собираешься говорить об ошибке компилятора


 
BadBlock   (2002-11-28 04:00) [11]

Цитирую...
Фаронов В.В.
"Процедуры и функции для работы файлами..."
Procedure CloseFile (var F); - Закрывает файл, однако связь файловой переменной F с именем файла, устаноленная ранее процедурой AssignFile, сохраняется. .... Поскольку связь файла с файловой переменной сохраняется, файл можно повторно открыть (тобишь запускать процедуры reset и тд.. прим. мое) без дополнительного использования процедуры AssignFile.
Конец цитаты...
По поводу текста ошибки компилятора... в общих чертах - переменная уже ассигнована... точный текст - завтра, послезавтра... вот.


 
mumu   (2002-11-28 10:01) [12]

2BadBlock (28.11.02 04:00)
>...
>Procedure CloseFile (var F); - Закрывает файл, однако
>связь файловой переменной F с именем файла, установленная
>ранее процедурой AssignFile, сохраняется.

Не вижу проблем. Файловая переменная и дескриптор файла
вещи разные.

Дело в том, что файловая переменная это, грубо говоря,
указатель на строку типа "c:\a.txt", а дескриптор файла
это указатель на объект файл.

Выполняя функцию открытия файла, мы связываем
файловую переменную и дескриптор файла.

Функция CloseFile разрывает эту связь и делает
дескриптор файла недействительным. Попросту
говоря, объект "файл" удаляется, но сама то файловая
переменная осталась и имеет значение (c:\a.txt).

Поэтому ее можно повторно связать со вновь созданным
дескриптором файла, вызвав функцию открытия файла.

Необходимость в
>функции типа скажем UnAssign
>или AssignFile := false ...
отсутствует, потому что повторное применение AssignFile
к файловой переменной приводит к изменению ее значения.


 
BadBlock   (2002-12-02 04:11) [13]

Проблема решена. всем спасибо.
Отдельное спасибо - Anatoly Podgoretsky.



Страницы: 1 вся ветка

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
7-36428
DJ_Sedoy
2002-10-11 07:44
2002.12.12
Получить картинку с камеры


4-36492
_landy
2002-10-25 14:25
2002.12.12
запустить программу от имени другого пользователя


1-36121
ned
2002-12-03 12:03
2002.12.12
Передача параметров thread-у


1-36173
Kolja
2002-12-04 01:59
2002.12.12
Посылка сообщения


3-36058
Hlor
2002-11-25 01:08
2002.12.12
Прошу помочь! Как удалить текущую запись в таблице