Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Welche DB soll ich verwenden ?

  Alt 25. Sep 2008, 08:06
Oder... und Schneller geht es nicht... (Wofür war die 713) ?

Delphi-Quellcode:

type

  Str6 = String[6];
  Str20 = String[20];
  Str60 = String[60];
  Str80 = String[80];

  TCooledaten = record
                  Nachname : Str80;
                  Vorname : Str80;
                  Strasse : Str80;
                  PLZ : Str6;
                  Ort : Str60;
                  frei : array[1..713] of byte; // Denksportaufgabe woher kommt die 713?
                end;

  TCoolerIDX = record
                  Nachname : Str20;
                  SeekNr : longint;
                end;

  TAlleDaten = array[0..1023] of TCooledaten;
  TAlleIDX = array[0..1023] of TCoolerIDX;
var

  fd_dat : file of TCooledaten;
  fd_dat2 : file of TAlledaten;

  fd_idx : file of TCoolerIDX;
  fd_idx2 : file of TCoolerIDX;

  Path : array[0..Max_Path] of char;
  Cooldaten : TCooledaten;
  CoolIDX : TCoolerIDX;
  AlleDaten : TAlleDaten;
  AlleIDX : TAlleIDX;
  i : integer;
  
begin
  SHGetFolderPath(0,CSIDL_PERSONAL,1,0,@Path[0]); // Vista!

  if {Alles im Speicher}
    then begin
           Assignfile(fd_dat2,Path+'\Meinprogramm\Daten\Coolbase.dat');
           Assignfile(fd_idx2,Path+'\Meinprogramm\Daten\Coolbase.idx');
         end;
    else begin
           Assignfile(fd_dat,Path+'\Meinprogramm\Daten\Coolbase.dat');
           Assignfile(fd_idx,Path+'\Meinprogramm\Daten\Coolbase.idx');
         end;

  {$I- }
  reset(fd_dat);

  if IOResult <> 0 then
    Rewrite(fd_dat);
  {$I+}

  if {Alles im Speicher}
    then begin
           Blockwrite(fd_Dat2,AlleDaten);
           Blockwrite(fd_idx2,AlleIDX);
         end
    else begin
           for i:=0 to 1023 do
             begin
               Blockwrite(fd_dat,Cooldaten);

               CoolIDX.Name := copy(Cooldaten,1,20);
               CoolIDX.SeekNr := i;

               Blockwrite(fd_idx,Coolidx);
             end;
         end;

  Closefile(fd_dat);
  Closefile(fd_IDX);
  Mit Zitat antworten Zitat