Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

dbf viewer   Найти похожие ветки 

 
oleggar ©   (2005-12-02 13:47) [0]

не знаете ни одного dbf просмотрщика или редактора ,который бы позволил сохранять Dbf файл как txt ?
Я свой сделал ,он это делает со скоростью 1мб/сек на P4 2 ГГц (за счет ассемблерного кода) ,но я хочу сравнить с другими по скорости..


 
Jeer ©   (2005-12-02 13:54) [1]

А зачем ?
Это разовая операция, как бы.
Не встречал реальных приложений, работающих с dbf файлами объемом более сотен Mbyte
Это всего 3-5 мин выгрузки.


 
han_malign ©   (2005-12-02 14:00) [2]


> (за счет ассемблерного кода)

- болеешь? Убери ассемблер, и прибавь глубину буфера чтения/записи(оптимальныя 65К)... А для полного счастья можешь чтение через File Mapping сделать:

interface
uses Windows;
type
  TFileMappingData = class
  private
     F_hFile: THandle;
     F_hMap: THandle;
     F_sFileName: string;
     F_pData: pointer;
     F_cbSize: integer;
     F_dwError: DWORD;
  public
     constructor Create(const aFileName: string= "");
     destructor Destroy; override;
     function Reset(const aFileName: string= ""): boolean;
     property Data: pointer read F_pData;
     property Size: integer read F_cbSize;
     property Error: DWORD read F_dwError;
  end;
implementation
constructor TFileMappingData.Create(const aFileName: string= "");
begin
  F_hFile:=INVALID_HANDLE_VALUE;
  Reset(aFileName);
end;

destructor TFileMappingData.Destroy;
begin
  Reset;
end;

function TFileMappingData.Reset(const aFileName: string= ""): boolean;
begin
  Result:=F_pData<>nil;
  if(CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, PChar(aFileName), Length(aFileName), PChar(F_sFileName), Length(F_sFileName))=2)
  then exit;
  if(F_pData <> nil)then UnmapViewOfFile(F_pData);
  if(F_hMap <> 0)then CloseHandle(F_hMap);
  if(F_hFile <> INVALID_HANDLE_VALUE)then CloseHandle(F_hFile);
  F_pData:=nil;
  F_hMap:=0;
  F_hFile:= INVALID_HANDLE_VALUE;
  Result:= true; F_dwError:= ERROR_NO_DATA;
  if(aFileName <> "")then begin
     F_hFile:= CreateFile(PChar(aFileName),GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
     if(F_hFile <> INVALID_HANDLE_VALUE)then begin
        F_hMap:= CreateFileMapping(F_hFile, nil, PAGE_READONLY, 0, 0, nil);
        if(F_hMap<>0)then begin
           F_pData:= MapViewOfFile(F_hMap, FILE_MAP_READ, 0, 0, 0);
           if(F_pData <> nil)then begin
              F_cbSize:= GetFileSize(F_hFile, nil);
              F_sFileName:= aFileName;
              F_dwError:= NO_ERROR;
              exit;
           end else F_dwError:=GetLastError;
           CloseHandle(F_hMap);
        end else F_dwError:=GetLastError;
        CloseHandle(F_hMap);
     end else F_dwError:=GetLastError;
     Result:=false;
  end;
end;


 
Skyle ©   (2005-12-02 14:09) [3]

C Excel сравни...если он вообще такое сгрызёт...


 
myor ©   (2005-12-02 15:48) [4]

cdbf [for windows] :-)


 
alex_*** ©   (2005-12-02 17:27) [5]

через Excel не пробовал?


 
oleggar ©   (2005-12-08 15:35) [6]

мне нужно обрабатывать сотни dbf (иногда в день) автоматически .filemapping вещь интересная ,а подробнее информация есть о нем ?или этот более полный кусок класса с примером использования найдется ?


 
Anatoly Podgoretsky ©   (2005-12-08 16:07) [7]

oleggar ©   (02.12.05 13:47)  
Какой же это вьювер?
Еще раз Эксель, типовое средство



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
11-1115883363
SkynoSky
2005-05-12 11:36
2006.01.01
Помагите в разработке БД в Delphi и IB


1-1133450767
Creater
2005-12-01 18:26
2006.01.01
Есть ли MS Access


14-1134042720
Mike Kouzmine
2005-12-08 14:52
2006.01.01
Скончался Георгий Жженов


3-1131601988
DimonS
2005-11-10 08:53
2006.01.01
Можно вопрос для чайников?


5-1118905491
flake
2005-06-16 11:04
2006.01.01
TTrackBar - ползунки