powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Access denied за которым следует I/O Error 103
17 сообщений из 17, страница 1 из 1
Access denied за которым следует I/O Error 103
    #40074429
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для юнит теста в Rad studio XE4 требуется создать файл со случайными данными. Диск ССД, ОС 2019 сервер.
Когда размер файла достигает 8.25 мег на разделе С или 10 мег на Д, происходят эти ошибки.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
type
  TAofExt = array[1..1024] of Extended;

  TestTt = class(TTestCase)
  public
  procedure SetUp; override;
  procedure TearDown; override;
  published
  procedure Test;
  end;

implementation

procedure TestTt.SetUp;
var
  f: File of TAofExt;
  r: Extended;
  ae: TAofExt;
  i,j: integer;
begin
  try
  try
    AssignFile(f, 'D:\myfile.bin'); // или на C:\Users\me\Desktop\
    Rewrite(f);
    for i:=i to 1024*1024 do
    begin
      for j:=1 to 1024 do 
      begin
        r:=Random;
        ae[i]:=r;
      end;
      Write(f, ae); // когда i=1025 сначала Access denied, следом I/O error 103.
    end;
  finally
    Close(f);
  end;
  except
    on E:Exception do
      //
  end;
end;



Почитал про 103 ошибку, что она связана с оппортунистической блокировкой или кэшированием. Так что делать? Ждать и пытаться повторять запись каждые несколько миллисекунд? Сколько раз? 10? 100? 1000? Но она даже не первой выскакивает.
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074433
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chungachanga,

Код: pascal
1.
for i:=i to 1024*1024 do



i:=i ???

TAofExt = array[1..1024] of Extended;
ae: TAofExt;
а потом еще и 1024*1024.
Это не миллион на 8. Это миллион на 8 тысяч.
т.е. 8.5 гиг. Так и задумано? Место кончилось?
После ошибки в свойствах файла (!) сколько байт пишет?
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074434
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074435
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerasimenko,

зачем такие мучения. FileStream нельзя что-ли?
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074436
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Gerasimenko,

зачем такие мучения. FileStream нельзя что-ли?
можно, одно другому не помеха
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074439
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, место не кончилось. а что, кого-то удивляют гигабайты?

да, там не :=i а :=1. все не дети, все поняли. к вопросу отношения не имеет.
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074441
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость


M e nage?
Ну ладно. Под современным понимается прямой вызов win API? Может быть мне и разрешат, но врядли. Хотят чтобы было на дельфи.
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074442
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chungachanga
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    for i:=i to 1024*1024 do
    begin
      for j:=1 to 1024 do 
      begin
        r:=Random;
        ae[i]:=r;
      end;
      Write(f, ae); // когда i=1025 сначала Access denied, следом I/O error 103.
    end;
  finally
    Close(f);
  end;

Исправите и будет работать
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074443
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

нет, не будет. это опечатка перепечатывания с одного компа на другой. там 1. все не дети.
ещё раз: ошибка возвращается файловой системой после успешной записи 8-10 мег. не надо про синтаксис, пожалуйста.
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074445
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chungachanga// когда i=1025 сначала Access denied, следом I/O error 103.

Не здесь, а выше. Когда ты в массив из 1024 элементов пытаешься записать 1025-й.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074447
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

покажите, где именно и почему это происходит?
я кажется начинаю догадываться. Вы часом не путаете Access violation с получаемым мной File Access Denied? это I/O exception. разные вещи.
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074448
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chungachangaпокажите, где именно и почему это происходит?

Здесь:
Код: sql
1.
ae[i]:=r;


После того, как ты вынес к чёртовой матери то, что лежит в стэке после массива - можешь
ожидать любые чудеса. В данном конкретном случае у тебя переписывается мусором структура f.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074450
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Chungachangaпокажите, где именно и почему это происходит?

Здесь:
Код: sql
1.
ae[i]:=r;


После того, как ты вынес к чёртовой матери то, что лежит в стэке после массива - можешь
ожидать любые чудеса. В данном конкретном случае у тебя переписывается мусором структура f.


Простым человеческим языком: вместо j стоит i. Спасибо!
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074451
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простым человеческим языком: нубам нельзя отключать в настройках сборки проверку выхода
индекса за пределы массива.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074504
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chungachanga,

"все не дети."
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40074544
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Простым человеческим языком: нубам нельзя отключать в настройках сборки проверку выхода
индекса за пределы массива.
Скорее: для дебага стоит включать. И не только нубам...
...
Рейтинг: 0 / 0
Access denied за которым следует I/O Error 103
    #40075201
Chungachanga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Простым человеческим языком: нубам нельзя отключать в настройках сборки проверку выхода
индекса за пределы массива.


Совершенно забыл что Range Checking по умолчанию отключён. Спасибо ещё раз!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Access denied за которым следует I/O Error 103
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]