Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Probleme beim Speichern einer Datei (https://www.delphipraxis.net/165920-probleme-beim-speichern-einer-datei.html)

Sorry bin Anfänger 21. Jan 2012 17:34


Probleme beim Speichern einer Datei
 
Hallo und einen schönen Abend an Alle,

nunja wie mein Name ja schon sagt bin ich absoluter und stümperhafter Anfänger in Delphi. Ich hoffe ihr könnt darüber hinwegsehen, dass ich keinen Plan habe.
Ich hoffe ihr nehmt euch für meine Anfänger-Fragen Zeit und ich nerve euch nicht so sehr, dass ihr mir nicht antwortet. Soviel zur Einleitung.

Mein Problem

Ich möchte ein einfaches Programm zum Üben des Laden und Speicherns von Dateien schreiben. Dazu habe ich mir ein Adressbuch ausgesucht (einfach und üblich)

Da ich ja nicht weiß was ich falsch mache hier der Quellcode:

Delphi-Quellcode:
unit Unit_Sp_1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Button1: TButton;
    Datei_speichern_Dialog: TSaveDialog;
    Datei_laden_Dialog: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

const max = 1000;

type

  TAdresse = record

            Vorname : String[30];
            Nachname : String[30];
            Wohnort : String[50];
            PLZ : String[50];
            Strasse : String[50];
            Telefonnummer : String[50];
            Handynummer : String[50];
            Faxnummer : String[50];
            Firma : String[50];
  end;

  TAdressenkartei = Array[1..max] of TAdresse;


var
  Form1: TForm1;
  Datei : file of TAdresse;
  Allah : TAdressenkartei;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
      If Datei_speichern_Dialog.Execute then begin
         assignfile(Datei, Datei_speichern_Dialog.FileName);
         rewrite(Datei);

         for i := 1 to max do begin
         write(datei, TAdressenkartei[i]);
         end
             closefile(Datei);
      end;
end;

end.
Hier der angezeigte Fehler: '(' erwartet aber '[' gefunden (die betreffende Stelle habe ich im Quellcode rot markiert)

Eigentlich steht hinter TAdressenkartei in eckigen Klammern der Index i.
Ich hoffe ihr seid mir wegen meiner wahrscheinlich etwas blöden Frage nicht zu böse...
Ich danke euch für die ins Lesen und Antworten investierte Zeit.

Habe das ganze jetzt mal um die von Klaus gewünschte Variable ergänzt...und jetzt???

LG Euer Anfänger

Klaus01 21. Jan 2012 17:53

AW: Probleme beim Speichern einer Datei
 
Hallo,

du solltest Dir vielleicht noch eine Variable deklarieren vom Typ TAddressenKartei.
Auf den Typen kannst Du so nicht zugreifen.

Grüße
Klaus

Sorry bin Anfänger 21. Jan 2012 17:54

AW: Probleme beim Speichern einer Datei
 
Danke sehr, ich probier das gleich mal aus.

Sorry bin Anfänger 21. Jan 2012 17:57

AW: Probleme beim Speichern einer Datei
 
Falls noch wer auf ne Folgefrage antworten kann, da hab ich auch gleich noch eine:

Reicht es nicht aus die Variablen im Record TAdresse zu Deklarieren???

Mein Compiler meckert und schreit Undefinierter Bezeichner...

SirThornberry 21. Jan 2012 18:03

AW: Probleme beim Speichern einer Datei
 
Bitte pro Thema nur eine Frage. Sonst wird das ein riesen Durcheinander und keiner weiß am Ende mehr welche Antwort zu welcher Frage gehört. Und andere mit dem gleichen Problem finden dann über die Suche die hier gepostete Lösung auch nicht mehr so leicht.

hathor 21. Jan 2012 18:11

AW: Probleme beim Speichern einer Datei
 
PLZ : Integer;
Telefonnummer : Integer;
Handynummer : Integer;
Faxnummer : Integer;

Alles in Strings ändern - Integer geht nicht!

idefix2 21. Jan 2012 22:45

AW: Probleme beim Speichern einer Datei
 
Delphi-Quellcode:
for i := 1 to max do begin
         write(datei, [COLOR="Red"]TAdressenkartei[i][/COLOR]);
         closefile(Datei);
         end
1.: was soll
Delphi-Quellcode:
[COLOR="Red"][/COLOR]


in der write-Anweisung? Ich fürchte, Du bringst da irgendwie HTML und Delphi durcheinander.

2. Closefile darfst Du erst am Ende aufrufen, wenn alle Datensätze geschrieben sind. Wenn Du closefile in der Schleife stehen hast, wird schon nach dem ersten Schleifendurchgang die Datei geschlossen sein und beim 2. Schleifendurchgang versuchst Du, in eine Datei zu schreiben, die nicht mehr offen ist.

Valle 21. Jan 2012 23:13

AW: Probleme beim Speichern einer Datei
 
Zitat:

Zitat von idefix2 (Beitrag 1147052)
1.: was soll
Delphi-Quellcode:
[COLOR="Red"][/COLOR]


in der write-Anweisung? Ich fürchte, Du bringst da irgendwie HTML und Delphi durcheinander.

Das ist kein HTML, sondern BB-Code. Er schrieb oben, dass er die betreffende Zeile mit der Fehlermeldung rot markieren wollte. Es handelt sich also nicht um die eigentliche Zeile, sondern um eine Bearbeitung zur besseren Lesbarkeit. (wenn auch dieser Versuch leider missglückt ist, da man im Quellentexten nicht formatieren kann ;-) )

Liebe Grüße,
Valentin

Sorry bin Anfänger 22. Jan 2012 11:19

AW: Probleme beim Speichern einer Datei
 
Zitat:

Zitat von Valle (Beitrag 1147054)
Zitat:

Zitat von idefix2 (Beitrag 1147052)
1.: was soll
Delphi-Quellcode:
[COLOR="Red"][/COLOR]


in der write-Anweisung? Ich fürchte, Du bringst da irgendwie HTML und Delphi durcheinander.

Das ist kein HTML, sondern BB-Code. Er schrieb oben, dass er die betreffende Zeile mit der Fehlermeldung rot markieren wollte. Es handelt sich also nicht um die eigentliche Zeile, sondern um eine Bearbeitung zur besseren Lesbarkeit. (wenn auch dieser Versuch leider missglückt ist, da man im Quellentexten nicht formatieren kann ;-) )

Liebe Grüße,
Valentin

Ja genau so ist es^^

Ich habe das jetzt mal rausgenommen und den Quellcode aktualisiert und auf den jetzigen Stand gebracht. Jedoch kommt jetzt das Problem zum tragen, dass mein Compiler klagt, dass er die Variablen aus dem Verbund angeblich nicht mehr kennt...

einbeliebigername 22. Jan 2012 12:18

AW: Probleme beim Speichern einer Datei
 
Hallo,

der Compiler gibt sicherlich einen Fehler aus mit der Zeilennummer der folgenden Zeile.
Zitat:

Zitat von Sorry bin Anfänger (Beitrag 1147022)
Delphi-Quellcode:
         write(datei, TAdressenkartei[i]);

Da steht ein Typ TAdressenkartei und danach kommt ein [. Der Compiler meint jetzt ein ( währe richtig, was einem Typ-Cast entspricht. Das ist ja nicht das was du willst, sondern du willst bestimmt den Inhalt einer Variablen (Allah) speichern.

einbeliebigername.


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