Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Breakpoint / Compiler Probleme (https://www.delphipraxis.net/157292-breakpoint-compiler-probleme.html)

Blup 7. Jan 2011 13:48

AW: Breakpoint / Compiler Probleme
 
+Warum eigentlich "Shortstring", das wird doch unnötig groß da immer die maximale Größe an Speicher reserviert wird. Da Name und Dateiname immer als Paar auftreten und z.T. mehrfach verwendet werden, würde ich die Struktur auch anders aufbauen:
Delphi-Quellcode:
interface

function ChartsName(n1, n2: Integer): string;
function ChartsPath(n1, n2: Integer): string;

implementation

type
  TChartRec = record
    Name: string;
    Path: string;
  end

const
  Chart_INFO1    : TChartRec = (Name = 'INFO 1'       , Path = 'INFO1.jpg');
  Chart_INFO2    : TChartRec = (Name = 'INFO 1'       , Path = 'INFO1.jpg');
  Chart_GND     : TChartRec = (Name = 'GND'          , Path = 'GND.jpg');
  Chart_PARKEast : TChartRec = (Name = 'PARK East'    , Path = 'PARKEast.jpg');
  Chart_PARK    : TChartRec = (Name = 'PARK'         , Path = 'PARK.jpg');
  Chart_PARKWest : TChartRec = (Name = 'PARK West'    , Path = 'PARKWest.jpg');
  Chart_SIDAMEXO : TChartRec = (Name = 'SID AMEXO'    , Path = 'SIDAMEXO.jpg');
  Chart_SID     : TChartRec = (Name = 'SID'          , Path = 'SID.jpg');
{...usw....}

  FCharts: array [0..40, 0..4] of TChartRec =
    ((Chart_INFO1, Chart_INFO1, Chart_GND,     Chart_GND,     Chart_GND),
     (Chart_INFO2, Chart_INFO2, Chart_PARKEast, Chart_PARK,    Chart_PARK),
     (Chart_GND,  Chart_GND,  Chart_PARKWest, Chart_SIDAMEXO, Chart_SID),
{...usw....}
    );

function ChartsName(n1, n2: Integer): string;
begin
  Result := FCharts[n1, n2].Name;
end;

function ChartsPath(n1, n2: Integer): string;
begin
  case n2 of
    0: Result := 'EDDG';
    1: Result := 'EDDH';
    2: Result := 'EDDK';
    3: Result := 'EDDM';
    4: Result := 'EDDT';
  else
    Result := '';
    Exit;
  end;
  Result := Format('Charts/%s/%s', [Result, FCharts[n1, n2].Path]);
end;
P.S. warum versaut der Delphi-Tag meine schöne Formatierung :(

BlueLiquidCell 7. Jan 2011 17:30

AW: Breakpoint / Compiler Probleme
 
Hey
Ja is mir aufgefallen ;-)
Aber später sollen es eh andere einträge werden und leider hilft das nicht gegen das Problem.

@ Blub, da hast du eig recht, werd ich mal probieren! Danke

SirThornberry 7. Jan 2011 17:44

AW: Breakpoint / Compiler Probleme
 
Ich würde die Daten in eine Datei packen und diese bei Programmstart in das Array laden.
Wenn ich mir die Daten des Arrays so anschaue, macht es den Eindruck das sich diese Daten auch mal ändern können. Schon deswegen würde ich das Auslagern in eine Datei bevorzugen damit nicht wegen jeder kleinen Datenänderung das Programm kompiliert werden muss.

BlueLiquidCell 7. Jan 2011 17:56

AW: Breakpoint / Compiler Probleme
 
Ja da haste Recht! Wollt ich auch machen, hatte blos noch keine Zeit

himitsu 7. Jan 2011 19:07

AW: Breakpoint / Compiler Probleme
 
Keine Zeit?
Eine TStringList im Key/Value-Modus wäre wesentlich schneller implementiert als solche Arrays.

die Datei
Code:
INFO 1=Charts/EDDG/INFO1.jpg
INFO 2=Charts/EDDG/INFO2.jpg
GND=Charts/EDDG/GND.jpg
...
Delphi-Quellcode:
SL.LoadFromFile(...);

S := SL.Value['GND'];
// S = 'Charts/EDDG/GND.jpg'

S := SL.Key[1];
// S = 'INFO 2'

BlueLiquidCell 7. Jan 2011 19:47

AW: Breakpoint / Compiler Probleme
 
Versteh zwar net warum das schneller sein soll aber macht auch nix.
Lad die namen jetzt aus ner externen Datei. Funktioniert wunderbar und compilen geht auch!
Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 2 von 2     12   

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