Главная страница
    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.47 MB
Время: 0.009 c
5-1119899149
Radgar
2005-06-27 23:05
2006.01.01
Массив в компоненте


14-1133796954
Игорь Шевченко
2005-12-05 18:35
2006.01.01
Вопрос к программистам Грузии и Армении


1-1133521902
bogdan
2005-12-02 14:11
2006.01.01
Организация авторана


14-1133426364
VictorT
2005-12-01 11:39
2006.01.01
Пропал Ketmar, тут его многие знали, может, кто межет чем-то


3-1131459679
syte_ser78
2005-11-08 17:21
2006.01.01
модератор.мудак:=труе





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