Einzelnen Beitrag anzeigen

Kendor

Registriert seit: 2. Jan 2003
Ort: Thun
16 Beiträge
 
Delphi 7 Professional
 
#5

Re: Zeiger/Pointer Frage (grosse Arrays) @cracks

  Alt 6. Apr 2005, 23:12
Zitat von SirThornberry:
Mach daraus einfach einen neuen Typ und legen einen Pointer auf diesen Typ an. Und dann diesen Pointer typ verwenden.
Delphi-Quellcode:
  TDokumentArr = array[1..9999] of TDokument;
  PDokumentArr = ^TDokumentArr;
mmh, ich hab scheinbar grad einen rechten knopf wie geh ich denn da weiter vor?

ich hab mir das weiter überlegt, ungefähr so:
Delphi-Quellcode:

type TDocument = record
      ID: cardinal;
      Number: string;
      Title: string;
      usw..
      end;

var // global
  OldDocDB: array[1..9999] of TDocument;
  NewDocDB: array[1..9999] of TDocument;
  EditDocDB: Pointer;
  first_time_flag: bool;


procedure ich_werde_bei_content_aufgerufen(Sender, Content, ...);
begin

if aktuelles_file = altes_file and first_time_flag=0 then
begin
  EditDocDB = @OldDocDB;
  first_time_flag=1;
end;
if aktuelles_file = neues_file and first_time_flag=0 then
  EditDocDB = @NewDocDB;
  first_time_flag=1;
end;

if CurrTag='Numberthen TDocument(EditDocDB[CurrID]^).Number:=Content;
if CurrTag='Titlethen TDocument(EditDocDB[CurrID]^).Title:=Content;
usw...

end;
(first_time_flag benutze ich, dass nur beim ersten durchlauf der Pointer gesetzt wird, sonst wird doch jedes mal wieder an die erste stelle verwiesen?)

kann das so funktionieren?
damit ich in OldDocDB die einträge des alten files und in NewDocDB die des neuen habe?


vielen dank...
Ut sementem feceris, ita metes.

Nosce te ipsum!(Inschrift in Delphi, nach Cicero)
  Mit Zitat antworten Zitat