AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zeiger/Pointer Frage (grosse Arrays) @cracks
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiger/Pointer Frage (grosse Arrays) @cracks

Ein Thema von Kendor · begonnen am 6. Apr 2005 · letzter Beitrag vom 6. Apr 2005
 
Kendor

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

Zeiger/Pointer Frage (grosse Arrays) @cracks

  Alt 6. Apr 2005, 19:05
guten abend!

einführung:
-------------------
also ich habe einen xml parser, mit welchem ich mehrere files auslesen will.
die ausgelesenen informationen speichere ich dabei in ein grosses array (wollte es dynamisch machen und immer der grösse anpassen, das gibt aber speicherfehler ab einer grösse von 1002 einträgen) also... array[1..9999] of TDokument;
Delphi-Quellcode:
type TDocument = record
      ID: cardinal;
      Number: string;
      Title: string;
      usw..
      end;
jedes mal wenn nun der parser einen content zwischen zwei xml tag findet wird ein ereignis aufgerufen... ich habe zuvor das aktuelle xml tag in der globalen variable CurrTag gespeichert.

nun frage ich nach tag ab (btw. gibts keine möglichkeit auch nach strings eine case abfrage zu machen? wie c++?) (content beinhaltet den eintrag zwischen den tags)
Delphi-Quellcode:
      if CurrTag='IDthen
        begin
          CurrID:=strtoint(Content); {/ ID ist immer erster eintrag daher geht das so }
            {  If CurrID>Length(NewDocDb) then SetLength(NewDocDb,CurrID+1); // geht nicht - speicher nehm ich an..? }
          NewDocDb[CurrID].ID:=strtoint(Content);
        end;
     if CurrTag='Numberthen
        NewDocDb[CurrID].Number:=Content;
     if CurrTag='Titlethen
        NewDocDb[CurrID].Title:=Content;

      usw...
wie ihr seht ist das dann alles schön in meiner struktgur gespeichert... -> funktioniert alles bestens...

nun parse ich aber ein weiteres file, mit dem gleichen parser, den gleichen tags..
dieses will ich aber nicht in NewDocDB speichern, sondern in OldDocDB

frage:
-------------------------
wie kann ich das vereinfacht machen durch einen pointer?
also damit es etwa so aussieht:

Delphi-Quellcode:
if aktuelles file = altes file then
speicher_mich_hier = zeiger auf das array wo das alte gespeichert wird
if aktuelles file = neues file then
speicher mich hier = zeiger auf das array wo das neue gespeichert wird

      if CurrTag='IDthen
        begin
          CurrID:=strtoint(Content);
          speicher_mich_hier[CurrID].ID:=strtoint(Content);
        end;
     if CurrTag='Numberthen
        speicher_mich_hier[CurrID].Number:=Content;
     if CurrTag='Titlethen
        speicher_mich_hier[CurrID].Title:=Content;

      usw...

vielleicht noch zu sagen: die arrays sind global... müssen...
klar geht das ganze auch indem man einfach die ganze abfrage kopiert und so für eine simple abfrage riesenviel code braucht...
aber ich denk es muss doch möglich sein? also eine referenz auf ein anderes array zu machen

vielen dank für eure schnellen antworten!
beste grüsse,
ein etwas verzweifelter kendor
Ut sementem feceris, ita metes.

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz