|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  TDBF exception - help me now!!! Я не Дельфист. Но Понадобилось срочно сделать простую спец утилитку. Я выбрал Дельфи т.к. там есть нужные компоненты. Для сохранения в DBF файл нашел простейший компонент и возрадовался. ----- Компонент TDBF. Автор : Брусникин Игорь Викторович - majar@nm.ru Версия : 1.11 - 14.06.2004 Статус : Свободно распостраняемый (freeware). Назначение : Компонент TDBF предназначен для непосредственного доступа (безиспользования BDE, ODBC и т.п.) к файлам формата dbf версий dBase III+, dBase IV, dBase V, dBase for Windows. Работает с Delphi 3..6 под Windows 9X/NT4/2000/XP. --------- Компиляция в Дельфи 6- без вопросов При выполнении DBFile.Active:=false; в модуле Unit1.pas всплывает >Debuger exception notification >Project ....exe raised exception class EAccessyViolation with message 'Access violation at address .... in module '....exe'. Read of address 0000035'. >Process stopped. При этом в модуле DBF.pas подсвечена строка > if FActive then в процедуре procedure TDbf.Close; begin if FActive then begin DFile.Free; ClearHeader; FieldList.Clear; FActive:=False; end else raise ED.Create('Close: Ôàéë íå îòêðûò'); end; описание внутренних переменных такое private FTableName: String; FExclusive: Boolean; FActive: Boolean; при выполнении DBFile.TableName:=DBFileName; выпадает на строке if not FActive then в процедуре procedure TDbf.SetTableName(Name: String); begin if not FActive then begin if UpperCase(ExtractFileExt(Name))='.DBF' then FTableName:=Name else raise ED.Create('TableName: Íåäîïóñòèìûé òèï ôàéëà'); end else raise ED.Create('TableName: Ýòî ñâîéñòâî íåëüçÿ èçìåíÿòü, åñëè ôàéë îòêðûò'); end; Подскажите чайнику = в чем проблема Может какой режим компиляции изменить? У меня все по-умолчанию. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Отбъект-то создай   | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|  А это не создание объекта? А это не создание объекта? var Form1: TForm1; TxtFile:TextFile; DBFile:TDBF; implementation С текстовым файлом все нормально. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Нет, не создание | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   И правда. Написал в TForm1.FormCreate(Sender: TObject); DBFile:=TDBF.Create(Form1); И вроде заработал компонент. !!!! Премного благодарен!!!! Вылез другой косяк. С закрытием текстового файла. открываю по кнопке так //---------------------------------------- if not FileExists(LogFileName) then begin FileHandle := FileCreate(LogFileName); FileClose(FileHandle); end; AssignFile(TxtFile, LogFileName); по событию записываю Append(TxtFile); Write(TxtFile, ReseivString ); Flush(TxtFile); закрываю по кнопке CloseFile(TxtFile); Так вот если не было события записи, то при закрытии >Debuger exception notification >Project ....exe raised exception class EInOutError with message 'I/O error 103'. >Process stopped. Что то еще неправильно понимаю? | 
| 
			 
			#6  
			
			
			
			
		 | ||||
| 
 | ||||
|   А после AssignFile(TxtFile, LogFileName); такую штуку как Rewrite или Reset вы когда планировали использовать?  | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   Спасибо всем. Прошу простить за чайницкие вопросы. Изучаю систему по встроенному хелпу. Получается недостаточно систематично. |