Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1295103406
Pcrepair
2011-01-15 17:56
2011.04.17
Разработка и модификация компонентов


15-1293716306
makarik01
2010-12-30 16:38
2011.04.17
виртульный диск


15-1294066387
KilkennyCat
2011-01-03 17:53
2011.04.17
В разделе "начинающим" есть про акустический резонанс.


2-1295201878
IPranker
2011-01-16 21:17
2011.04.17
Определить, является ли многоугольник выпуклым?


15-1293447297
GanibalLector
2010-12-27 13:54
2011.04.17
Распознавания рукописных символов (FlexiCapture + Delphi)





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