Autor Beitrag
Henneberg
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 11.04.13 21:32 
Hallo
also ich hab davon durch Zufall vor einiger Zeit von meinem Lehrer gehört doch bekomm es leider nicht mehr hin.
Zu meinem Problem:

ich habe ein eindimensionales statisches Array und habe nun gehört das man das mit savetofile als txt speichern kann und mit loadfromfile wieder in ein array laden kann. Ich habe im internet immer wieder etwas von einer stringlist gehört, kenne mich da aber nicht so aus. Außerdem waren die dort vorgestellten Lösungen lang und kompliziert und in meiner Erinnerung ging das damals deutlich leichter.

Ich hoffe mir kann jemand helfen ;)
MfG Henneberg
Quitzlinga
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60
Erhaltene Danke: 2

Win XP
Delphi 2007 Prof. Codegear Win32
BeitragVerfasst: Do 11.04.13 21:55 
Hi,

Hier mal ein Link zu einem sehr gutem Tutorial dazu.

www.delphi-treff.de/...thoden-von-tstrings/

MfG

Quitzlinga
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Fr 12.04.13 09:21 
Man könnte natürlich das Array in eine TStringlist überführen und diese speichern, zum Laden das ganze andersherum. Allerdings stellt sich dann die Frage, ob man nicht gleich TStringlist benutzt und das Array abschafft. Da es sich aber wohl um ein Schulprojekt handelt, könnte ich mir vorstellen, dass das nicht gewünscht ist, daher ein Ansatz (aus dem Kopf getippt):
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
type 
  TStringArray = array of string;

procedure SaveArrayToFile(const Arr: TStringArray; const Filename: string);
var
  List: TStringlist;
  i: integer;
begin
  List := TStringlist.Create;
  try
    for i := Low(Arr) to High(Arr) do
      List.Add(Arr[i]);
    List.SaveToFile(Filename);
  finally
    List.Free;
  end;
end;

procedure LoadArrayFromFile(var Arr: TStringArray; const Filename: string);
var
  List: TStringlist;
  i: integer;
begin
  List := TStringlist.Create;
  try
    List.LoadFromFile(Filename);
    SetLength(Arr, List.Count);
    for i := 0 to List.Count - 1 do
      Arr[i] := List[i];    
  finally
    List.Free;
  end;
end;

Irrtümer vorbehalten.
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Sa 13.04.13 14:29 
mhh.. vielleicht hilft dir ja ein record ?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TStringArray = record
  Strings: Array[1..100of String[100]; //Array MUSS staatisch und String MUSS begrenzt sein
end;


type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  EinArrayVon: TStringArray;
  Pfad: String;

implementation

{$R *.dfm}

procedure Speichern;
var F: File of TStringArray;
begin
  try
     AssignFile(F, Pfad);
     ReWrite(F);
     Write(F, EinArrayVon);
   finally
     CloseFile(F);
   end;
end;

procedure Laden;
var  F: File of TStringArray;
begin
   try
     AssignFile(F, Pfad);
     Reset(F);
     Read(F, EinArrayVon);
   finally
     CloseFile(F);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var C: Integer;
begin
//alle Strings beschreiben
For C:=Low(EinArrayVon.Strings) to High(EinArrayVon.Strings) do        //von 1 bis 100
  EinArrayVon.Strings[C] := 'Test';

Pfad := ExtractFilePath(Application.Exename) + 'AbgespeicherteVar.txt';
Speichern;
end;

end.


Falls du was nicht verstehst einfach fragen :)

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!