Пятница, 08 Ноя 2024, 20:54
Uchi.ucoz.ru
Меню сайта
Форма входа

Категории раздела
Высшая математика [11]
Экономическая социология [95]
Основы Менеджмента [64]
Бухгалтерский учёт [157]
Философия [163]
Мировая Экономика [603]
Бизнес планирование [29]
Финансирование и кредитование инвест [105]
Ценообразование [46]
Гражданское право [196]
Права Человека [173]
Основы Маркетинга [207]
Основы энергосбережения [55]
Информатика [0]
Экология и устойчивое развитие [0]
Физика для студентов [0]
Основы права [0]
Политология [0]
Не стандартные примеры на Delphi [169]
Примеры на Delphi7 [108]
Алгоритмы [94]
API [110]
Pascal [152]
Базы Данных [6]
Новости
Чего не хватает сайту?
500
Статистика
Зарегистрировано на сайте:
Всего: 51642


Онлайн всего: 117
Гостей: 117
Пользователей: 0
Яндекс.Метрика
Рейтинг@Mail.ru

Каталог статей


Главная » Статьи » Студентам » Не стандартные примеры на Delphi

Импорт CSV ASCII
...вот то, что вам нужно. Я использую этот компонент для работы с
разделителем при импорте ASCII.

Dave

unit
Cdbascii;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls,
Forms, Dialogs, DbiErrs, DbiTypes, DbiProcs, DB,
DBTables;
type

TAsciiDelimTable = class(TTable)
private
{ Private declarations }
fQuote :Char;
fDelim :Char;
protected
{ Protected declarations }
function CreateHandle: HDBICur; override;
Procedure SetQuote(newValue :Char);
Procedure SetDelim(newValue :Char);
public
{ Public declarations }
constructor Create(AOwner: TComponent);
override;
destructor Destroy; override;
{ Эти свойства не должны больше публиковаться
}
property IndexFieldNames;
property IndexName;
property MasterFields;
property MasterSource;
property UpdateMode;
published
{ Published declarations }
Property Quote:Char Read fQuote Write
setQuote Default '"';
Property Delim:Char Read fDelim Write
setDelim Default ',';
end;
procedure
Register;

implementation

uses
DBConsts;

procedure Register;
begin

RegisterComponents('Data Access',
[TAsciiDelimTable]);end;

constructor
TAsciiDelimTable.Create(AOwner: TComponent);
Begin

Inherited Create(AOwner);
Exclusive:=True;
TableType:=ttASCII;
fQuote := '"';
fDelim := ',';End;

destructor
TAsciiDelimTable.Destroy;
Begin

Inherited Destroy;End;

{ Рабочий код }

function CheckOpen(Status:
DBIResult): Boolean;
begin

case Status of
DBIERR_NONE:
Result := True;
DBIERR_NOTSUFFTABLERIGHTS:
begin
if not Session.GetPassword then DbiError(Status);
Result := False;
end;
else
DbiError(Status);
end;end;

function
TAsciiDelimTable.CreateHandle: HDBICur;
const

OpenModes: array[Boolean] of DbiOpenMode =
(dbiReadWrite, dbiReadOnly);
ShareModes: array[Boolean] of DbiShareMode =
(dbiOpenShared, dbiOpenExcl);var

STableName: array[0..SizeOf(TFileName) - 1] of
Char;
SDriverType: array[0..12] of Char;begin

if TableName = '' then
DBError(SNoTableName);
AnsiToNative(DBLocale, TableName, STableName, SizeOf(STableName) -
1);
StrPCopy(SDriverType, 'ASCIIDRV-'+Quote+'-'+Delim);
Result := nil;
while not CheckOpen(DbiOpenTable(DBHandle, STableName,
SDriverType,
nil, nil, 0,
OpenModes[ReadOnly], ShareModes[Exclusive],
xltField, False, nil, Result)) do {Повтор};end;

Procedure
TAsciiDelimTable.SetQuote(newValue :Char);
Begin

If Active Then
{ DBError(SInvalidBatchMove);
};
fQuote := newValue;End;
Procedure
TAsciiDelimTable.SetDelim(newValue :Char);
Begin

If Active Then
{ DBError(SInvalidBatchMove);
};
fDelim := newValue;End;

end.
Категория: Не стандартные примеры на Delphi | Добавил: Lerka (22 Ноя 2012)
Просмотров: 527 | Рейтинг: 1.0/ 6 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


Для форума (BB-Code)


Прямая ссылка

Профиль
Пятница
08 Ноя 2024
20:54


Вы из группы: Гости
Вы уже дней на сайте
У вас: непрочитанных сообщений
Добавить статью
Прочитать сообщения
Регистрация
Вход
Улучшенный поиск
Поиск по сайту Поиск по всему интернету
Наши партнеры
Интересное
Популярное статьи
Портфолио ученика начальной школы
УХОД ЗА ВОЛОСАМИ ОЧЕНЬ ПРОСТ — ХОЧУ Я ЭТИМ ПОДЕЛИТ...
Диктанты 2 класс
Детство Л.Н. Толстого
Библиографический обзор литературы о музыке
Авторская программа элективного курса "Практи...
Контрольная работа по теме «Углеводороды»
Поиск
Главная страница
Используются технологии uCoz