Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array in externe Datei ein- und auslesen (https://www.delphipraxis.net/62616-array-externe-datei-ein-und-auslesen.html)

Scharfrichter 7. Feb 2006 11:09


Array in externe Datei ein- und auslesen
 
Tagchen,

ich hab zwar schon die komplette Code-Liberary durchsucht, zu dem thema aber zumindest für meinen Verwendungszweck nichts gefunden, aber ich hoffe ihr könnt mir weiterhelfen.
Ich möchte folgendes machen: Ich habe ein Array von der Größe 1-32.000 und in jeder Position des Arrays befindet sich ein Integer auch von 1-32.000. Ich möchte nun das komplette Array in eine externe Datei laden, in eine .ini oder .cfg Datei z.B. oder was natürlich am besten wäre, ne komplett neue Dateiendung verwenden damit Verwechslungen ausgeschlossen sind. Zum entsprechenden speichern in solche Datein fehlt natürlich auch das auslesen wieder ein ein neues Array. Hat da jemand vielleicht ein keines Tutorial oder ne gute Anweisung wie ich das Realisieren kann. Wichtig wäre halt auch, dass beim öffnen und beim speichern jeweils das typische Windows-Dateinfenster kommt, sodass man den Pfad und den Namen der zu speichernden bzw. zu ladenden Datei selbst angeben kann.

Gruß Scharfrichter

zer00 7. Feb 2006 11:31

Re: Array in externe Datei ein- und auslesen
 
Erstelle dir einen eigenen Array Type und speichere diesen danach in eine Typisierten Datei.
Ich kann dir am Abend noch ein Beispiel posten, wenn bis dann nicht schon zig lösungen geposted worden sind, wovon ich aber ausgehe.

grz zer00

Scharfrichter 7. Feb 2006 14:51

Re: Array in externe Datei ein- und auslesen
 
Hilft mir so erstmal leider nicht wirklich weiter, hab noch nie irgendwie mit externen Datein gearbeitet.

idontwantaname 7. Feb 2006 15:15

Re: Array in externe Datei ein- und auslesen
 
Ganz einfach:
Delphi-Quellcode:
type
  TMyArray = array[1..32000] of Integer;

procedure Speichern;
var
  myArray: TMyArray;
  f: file of TMyArray;
begin
  // Array befüllen
    {...}

  // Array abspeichern
    AssignFile(f, 'C:\test.xyz');
    ReWrite(f);
    Write(f, myArray);
    CloseFile(f);
end;

procedure Laden;
var
  myArray: TMyArray;
  f: file of TMyArray;
begin
  // Array laden
    AssignFile(f, 'C:\test.xyz');
    Reset(f);
    Read(f, myArray);
    CloseFile(f);

  // irgendwas mit dem Array machen
    {...}
end;

Scharfrichter 7. Feb 2006 15:25

Re: Array in externe Datei ein- und auslesen
 
Super funktioniert wunderbar und für meine Zwecke genau richtig, nur gibt es die Möglichkeit auch nen Fenster sich öffnen zu lassen, wo dann der Anwender zu Laufzeit einen Namen für die zu speicherende Datei auswählt und beim laden die Datei auch suchen kann und so mehrere Dateien eines Typs gleichzeitig bestehen können?

Khabarakh 7. Feb 2006 15:29

Re: Array in externe Datei ein- und auslesen
 
Dafür gibt es die Komponente Delphi-Referenz durchsuchenTSaveDialog.

Scharfrichter 7. Feb 2006 15:31

Re: Array in externe Datei ein- und auslesen
 
Perfekt genau das brauchte ich, danke =)

zer00 7. Feb 2006 16:32

Re: Array in externe Datei ein- und auslesen
 
Danke idontwantaname, ich glaube Du kannst gedankenlesen.

grz zer00

theNick 22. Mär 2006 14:44

Re: Array in externe Datei ein- und auslesen
 
ich habe gerade diesen Thread gefunden, der genau mein problem beschreibt.
Ich habe es natürlich gleich ausprobiert doch er zeigt mir den fehler ->

[Fehler] Unit1.pas(60): E2155 Typ 'TSchuelerFeld' benötigt Finalization - nicht im Dateityp erlaubt

veilleicht kann mir ja jemand helfen

Delphi-Quellcode:
type
  tSchueler = record
                nachname : String[25];
                vorname : String[20];
                stufe : Byte;
                klasse : string;
              end;
  TSchuelerFeld = array[1..200] of TSchueler;

var
  Form1: TForm1;
  x: integer;
  SchuelerFeld : TSchuelerFeld;
  f: file of TSchuelerFeld;

{array wird gefüllt ...}

procedure TForm1.ButtonespeichernClick(Sender: TObject);
begin
{Array abspeichern}
    AssignFile(f, 'C:\Sportunterricht.xyz');
    ReWrite(f);
    Write(f, SchuelerFeld);
    CloseFile(f);
end;

procedure TForm1.ButtonladenClick(Sender: TObject);
begin
{Array laden}
    AssignFile(f, 'C:\Sportunterricht.xyz');
    Reset(f);
    Read(f, SchuelerFeld);
    CloseFile(f);
end;

scp 22. Mär 2006 14:52

Re: Array in externe Datei ein- und auslesen
 
Das Problem wird
Delphi-Quellcode:
              klasse : string;
sein. Dies ist ein String mit variabler Länge, was für typisierte Dateien nicht geht.
Ändere es z.B. in
Delphi-Quellcode:
              klasse : string[255];


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 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