Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrere Dateien laden und... (https://www.delphipraxis.net/67644-mehrere-dateien-laden-und.html)

Batman666 18. Apr 2006 04:56


Mehrere Dateien laden und...
 
hallo

habe mehrere Dateien in denen ich unterschiedliche Sachen speichere.
Diese möchte ich nicht immer bei bedarf laden sondern um die benötigten Daten schnell anzubieten beim Programmstart laden und immer halt verfügbar haben!

Es handelt sich dabei nur um ASCII Dateien in denen Zeilenweise Informationen a la

Frank Msuterman#Musterweg8
natürlich in der dazu passenden DAT Datei in diesem Falle M ;)


Wie könnte ich nun halt diese im Programm immer geladen halten.
Wichtig ist auch das ich die Einträge innerhalb verschieben kann
Also in der Liste m steht an Platz 6 Mama und am Platz 88 Mond ---
diese beiden müssen halt den Platz tauschen können!


hatte an 26 StringList gedacht diese beim Start halt erstellen - aber
ich weis nicht ob ich 26 benötige oder 30 (es kommt NICHT nur das ABC) in frage!

Also müsste ich Dynamisch diese StringList erstellen aber wie?! ich kann das nur während der Design Time machen?!

Gibt es noch bessere Ideen?!

toms 18. Apr 2006 05:38

Re: Mehrere Dateien laden und...
 
Hallo

Du koenntest z.B in einer TObjectList die TStringlists verwalten.

Batman666 18. Apr 2006 05:40

Re: Mehrere Dateien laden und...
 
TObjectList? habe ich noch nie gehört *ups*

Was hat es damit genau aufsich?

toms 18. Apr 2006 08:51

Re: Mehrere Dateien laden und...
 
--> Delphi Hilfe --> TObjectList suchen :wink:

Batman666 18. Apr 2006 09:06

Re: Mehrere Dateien laden und...
 
ha was glaubst was cih schon machte -
ich schreie nie ohne nicht vorher zu suchen nun habe ich 3 stunden kange gesucht und probiert!

das mein result - nix geht!


Delphi-Quellcode:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, contnrs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  MyList: TObjectList;


implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  MyList: TObjectList;
  k, m: TStringList;
  i: integer;
begin
  MyList := TObjectList.Create;


  k := TStringList.Create;

  for i := 0 to 99999 do
  begin
    k.add('dffg');
    MyList.Add(k);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ShowMessage(IntToStr(MyList.count));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyList := TObjectList.Create(True);
end;

end.


Die Message ist immer 0 nix drinn ;(

marabu 18. Apr 2006 09:18

Re: Mehrere Dateien laden und...
 
Ein Wunder, dass du immer 0 als Count erhältst. Es könnte auch eine Zugriffsverletzung entstehen. Du hast MyList ja lokal in einem event handler deklariert.

Grüße vom marabu

Batman666 18. Apr 2006 09:20

Re: Mehrere Dateien laden und...
 
was soviel bedeutet?

jfheins 18. Apr 2006 09:21

Re: Mehrere Dateien laden und...
 
Kein Wunder, denn die globale Variable wird im OnCreate initialisiert ....

Aber du solltest im Button1Click nicht mit der lokalen Variable arbeiten ;)

fkerber 18. Apr 2006 09:23

Re: Mehrere Dateien laden und...
 
Hi!

Nach Verlassen der Prozedur Button1Click sind natürlich auch deren lokale Variablen weg - somit auch deine Liste.
Deshalb besser als globale Variable oder noch viel besser als Private.


Ciao Frederic

marabu 18. Apr 2006 10:03

Re: Mehrere Dateien laden und...
 
Hallo Batman,

wenn du keinen wirklich guten Grund dafür hast, solltest du die Daten nicht in 26+ einzelnen Dateien verwalten. Wenn die Strings alpha-sortiert werden dürfen, dann bist du mit einer sortierten StringList wahrscheinlich besser beraten. Man kann dazu - wenn es denn sein muss - immer noch eine JumpList pflegen, über die einzelne Abschnitte direkt zugänglich werden.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz