Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
1-36125
SemFLY
2002-12-01 02:06
2002.12.12
RadioButton простой вопрос


14-36343
Evyshka
2002-11-20 16:18
2002.12.12
НЕ устанавливается Delphi


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


1-36190
TUZ_SS
2002-12-04 10:49
2002.12.12
Фокус ввода


1-36105
Yogi
2002-11-29 22:09
2002.12.12
Service





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский