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

Вниз

Не открывается файл Reset ом   Найти похожие ветки 

 
Muller   (2005-08-05 23:31) [0]


var
 FName : string;
 DName : array of string;

procedure FileWork(const FileName: string);
var
 F: file;
begin
 Assign(F,FileName);
 Reset(F,1); // чтение по одному байту
 // .......................
 Close(F); // или CloseFile(F) - все равно
end;


обращаюсь
FileWork(FName) - работает
FileWork(DName[k]) - косячит

трассировка показывает, что в случае с DName[k]
процедура IOResult <> 0, т.е. какой-то косяк с файлом:

{$I-}
Reset(Fi,1);
{$I+}
if IOResult <> 0 ... - срабатывает!


пробовал
S := DName[k]; // S - string (глоб var);
FileWork(S);
бесполезно

Где ошибка?


 
Джо ©   (2005-08-05 23:36) [1]

Неверное имя файла передаешь в процедуру. Причем тут Record? Поставь в начале процедуру брэкпойнт и посмотри, чему равен FileName внутри процедуры.


 
Джо ©   (2005-08-05 23:37) [2]

[1] Джо ©   (05.08.05 23:36)
>  Причем тут Record?

Т.е., причем тут Reset?


 
Muller   (2005-08-06 00:00) [3]

какой Record? Нет никакого Record"a!
FileName во всех перечисленных случаях равен тому чему надо
хинт:
Filename = "c:\programming\ultraprog\test\rt.dll";
но с String работает, а с ^array of string не хочет


 
Джо ©   (2005-08-06 00:05) [4]

Приведи весь код, как есть, включая заполнение массива.


 
Palladin ©   (2005-08-06 10:10) [5]

вместо Assign - AssignFile, вместо Close - CloseFile


 
Mx ©   (2005-08-06 10:14) [6]


> Palladin ©   (06.08.05 10:10) [5]
> вместо Assign - AssignFile, вместо Close - CloseFile

Хе, а ведь точно :) А никто и не заметил :)


 
Anatoly Podgoretsky ©   (2005-08-06 11:21) [7]

Ты думаешь точно?


 
Mx ©   (2005-08-06 11:54) [8]


> Anatoly Podgoretsky ©   (06.08.05 11:21) [7]

Сейчас как раз файлами занимался (правда через FileOpen/FileClose), и прочитал заодно что Assign/Close для совместимости сохранено. Облажался...


 
Muller   (2005-08-06 12:42) [9]

еще раз [3]
т.е. при трассировке Filename не пустая строка, а самая что ни на есть живая, но Reset её не берёт

> Palladin ©   (06.08.05 10:10) [5]
> вместо Assign - AssignFile, вместо Close - CloseFile

пробовал - проблема осталась


 
Muller   (2005-08-07 00:22) [10]

IOResult возвращает 32  :0

ничё не понимаю - целый или вещественный тип
чего? не понимаю :(


 
Джо ©   (2005-08-07 00:42) [11]

Приведи, все-таки, заполнение массива DName и все, с ним связанное. Реальный код.


 
Muller   (2005-08-07 11:15) [12]

Дело не в массиве
приводить весь код - много, долго выковыривать

вообще-то приведенный фрагмент процедуры Filework - это расчёт CRC32 передаваемого файла. После замены процедуры на другую с использованием TFileStream (+ модуль Classes) всё работает отлично, поэтому считаю, что ошибка именно в связке Assign - Reset (только непонятно почему)

Проверка на существование файла (FileExists) перед Aassign проходит успешно.

Если пробовать OpenDialog, то OpenDialog.FileName и параметр функции FileName совпадают, но файл не открывается.


 
begin...end ©   (2005-08-07 11:44) [13]

> Muller   (07.08.05 11:15) [12]

Перед Reset добавить FileMode := fmOpenRead не помогает?


 
begin...end ©   (2005-08-07 12:08) [14]

> Muller   (07.08.05 0:22) [10]
> IOResult возвращает 32

ShowMessage(SysErrorMessage(32)): Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.


 
Muller   (2005-08-07 21:18) [15]

вот это не знал
щас пробую


 
Muller   (2005-08-07 23:43) [16]

да, всё ОК, работает
спасибо



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
3-1121415647
msguns
2005-07-15 12:20
2005.08.28
Имеет ли DBGrid линейки прокрутки


9-1112773901
rainKM
2005-04-06 11:51
2005.08.28
Random (Pascal)


14-1123166938
lookin
2005-08-04 18:48
2005.08.28
Музыкальный стиль


9-1114794185
Warchief
2005-04-29 21:03
2005.08.28
lightmap


1-1123166816
Русланка
2005-08-04 18:46
2005.08.28
А есть какая- нибудь функция, чтобы все буквы приветси к верхнему





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский