Текущий архив: 2011.04.17;
Скачать: CL | DM;
ВнизБред и I/O Error 1784 Найти похожие ветки
← →
Германн © (2011-01-03 02:06) [0]Отлаживаю программу и ловлю сию ошибку. В отладчике смотрю значение переменных и вижу:
Значение twDoors.Items.Count равно 6.
http://pikucha.ru/895034
А значение Nc в в параметрах цикла for 0.
http://pikucha.ru/895034
Это бред!
В поисковиках искал описание ошибки I/O Error 1784, но ничего путного не нашел.
Это не пойми чего.
Эврика определяет это как AV.
Так что задам я этот вопрос и на "сырцах".
← →
Германн © (2011-01-03 02:10) [1]Блин. Значение Nc показано в http://pikucha.ru/895035
← →
Palladin © (2011-01-03 02:15) [2]описания var для NameCtrl и второго шорта нет, SizeOf(ShortString) даст 255, телепатор телепатирует о более короткой переменной, отсюда 1784
а чего скриншоты то одинаковые? )
← →
Германн © (2011-01-03 02:25) [3]
> Palladin © (03.01.11 02:15) [2]
>
> описания var для NameCtrl и второго шорта нет, SizeOf(ShortString)
> даст 255, телепатор телепатирует о более короткой переменной,
> отсюда 1784
>
>
Описания будут представлены, если в этом будет нужда. Твой телепатор врёт телепируя о "более короткой переменной". Переменная типа ShortString всегда имеет размер 256 байт.
← →
Palladin © (2011-01-03 02:27) [4]) ну 256 так 256, раз нужды нет
← →
Andy BitOff © (2011-01-03 03:17) [5]Вот, блин, народу не спится, да еще и третьего января. =))
Сорри за оффтоп.
← →
Ляпа (2011-01-03 04:11) [6]
Rewrite(FF,1);
← →
Ляпа (2011-01-03 04:17) [7]procedure BlockWrite(var f: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);
Description
F is an untyped file variable, Buf is any variable, Count is an expression of type Integer, and AmtTransferred is an optional variable of type Integer.
BlockWrite writes Count or fewer records to the file F from memory, starting at the first byte occupied by Buf. The actual number of complete records written (less than or equal to Count) is returned in AmtTransferred.
The entire block transferred occupies at most Count * RecSize bytes. RecSize is the record size specified when the file was opened (or 128 if the record size was unspecified).
← →
uw © (2011-01-03 10:03) [8]А TCtrl - это точно класс?
← →
Anatoly Podgoretsky © (2011-01-03 13:47) [9]> Германн (03.01.2011 02:06:00) [0]
Не знаю как ты искал, но у меня 10 of 677,000 results
← →
Anatoly Podgoretsky © (2011-01-03 13:51) [10]Только нафига искать в Интернет, там же утонешь, когда с Дельфи поставляется MS SDK
1784L ERROR_INVALID_USER_BUFFER
← →
Германн © (2011-01-03 19:40) [11]
> 1784L ERROR_INVALID_USER_BUFFER
Не знаю причем тут невалидный буфер, но Эврика была права. Это действительно AV.
Забыл что в отличии от TListView у TTreeView в списке Items присутствуют все ноды, а не только ноды верхнего уровня.for i:=0 to twDoors.Items.Count-1 do begin
Door:=TDoor(twDoors.Items[i].Data);
И не у всех нод в свойстве Data записан указатель на класс TDoor.
← →
Anatoly Podgoretsky © (2011-01-03 20:25) [12]AV это следствие неправильного адреса (буфера) или его размера.
← →
Германн © (2011-01-04 01:25) [13]
> Anatoly Podgoretsky © (03.01.11 20:25) [12]
>
> AV это следствие неправильного адреса (буфера) или его размера.
Кто бы спорил. Но при чем тут I/O Error?
Или это ещё одна инкарнация AV?
Т.е. обращаемся к классу по невалидной ссылке. И в процедуре BlockWrite обращение к полю этого класса вызывает AV, которое переводится Дельфи как I/O Error 1784? Час от часу не легче.
P.S. Наверно пора учить стримы раз паскалевские методы работы с файлами могут давать такие сообщения об ошибках.
← →
Ляпа (2011-01-04 01:35) [14]
> паскалевские методы работы с файлами могут давать такие
> сообщения об ошибках.
Легко:
var
FF:File;
P:^ShortString;
begin
AssignFile(FF,"D:\TestTestTest2");
Rewrite(FF,1);
p:=nil;
BlockWrite(FF,p^[0],SizeOf(ShortString));
CloseFile(FF);
end;
← →
Германн © (2011-01-04 01:40) [15]
> Ляпа (04.01.11 01:35) [14]
>
>
> > паскалевские методы работы с файлами могут давать такие
> > сообщения об ошибках.
>
> Легко:
>
Прощай Паскаль! Здравствуй Embarcadero!
Вот только нет уверенности, что Дельфи последних версий не даст мне такого же "смутного" сообщения о такой же ошибке при работе со стримами.
← →
Ляпа (2011-01-04 01:55) [16]
> Вот только нет уверенности, что Дельфи последних версий
> не даст мне такого же "смутного" сообщения о такой же ошибке
> при работе со стримами.
Хрен редьки не слаще. ИМХО.
← →
Германн © (2011-01-04 01:59) [17]
> Ляпа (04.01.11 01:55) [16]
>
>
> > Вот только нет уверенности, что Дельфи последних версий
> > не даст мне такого же "смутного" сообщения о такой же
> ошибке
> > при работе со стримами.
>
> Хрен редьки не слаще. ИМХО.
Утешил, блин.
← →
Anatoly Podgoretsky © (2011-01-04 08:29) [18]
> Кто бы спорил. Но при чем тут I/O Error?
I/O к тому, что это работа с паскалевскими файлами ввода вывода (I/O)
а 1784 это код, который вернул ОСовская функция, и это лучше чем безликое AV
> All errors other than I/O errors and fatal errors are reported
> with the error codes returned by the operating system.
← →
Anatoly Podgoretsky © (2011-01-04 08:31) [19]> Германн (04.01.2011 01:40:15) [15]
Смутно когда получишь ошибку AV, а не конкретно про буфер. В случае ошибки
1784 ты именно ее получишь и от потоков. И паскалевский и потоковый
ввод/вывод опираются на ОС
← →
Ляпа (2011-01-04 19:23) [20]
> Anatoly Podgoretsky © (04.01.11 08:31) [19]
>
> > Германн (04.01.2011 01:40:15) [15]
>
> Смутно когда получишь ошибку AV, а не конкретно про буфер.
> В случае ошибки
> 1784 ты именно ее получишь и от потоков.
Вот только в случае с BlockWrite ошибка 1784 сама в руки придёт, а от потоков ему ещё придётся её выковыривать -)
Страницы: 1 вся ветка
Текущий архив: 2011.04.17;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.004 c