Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Access denied за которым следует I/O Error 103 / 17 сообщений из 17, страница 1 из 1
31.05.2021, 16:14
    #40074429
Chungachanga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
Для юнит теста в 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
31.05.2021, 16:24
    #40074433
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
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
31.05.2021, 16:25
    #40074434
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
...
Рейтинг: 0 / 0
31.05.2021, 16:25
    #40074435
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
Gerasimenko,

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

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

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


M e nage?
Ну ладно. Под современным понимается прямой вызов win API? Может быть мне и разрешат, но врядли. Хотят чтобы было на дельфи.
...
Рейтинг: 0 / 0
31.05.2021, 16:36
    #40074442
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
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
31.05.2021, 16:40
    #40074443
Chungachanga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access denied за которым следует I/O Error 103
_Vasilisk_,

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

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

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

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


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

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

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


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


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

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

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


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


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