AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Record in Datei speichern

Ein Thema von EMS · begonnen am 19. Dez 2012 · letzter Beitrag vom 2. Jan 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#1

Record in Datei speichern

  Alt 19. Dez 2012, 13:38
Hallo
Ich habe folgendes Problem.
Möchte gerne diese Programm zum laufen bekommen.
Es soll eine Datei erstelle wo die Daten aufgelistet sind.
Irgendwo ist hier aber wieder ein Fehler.

Er bleibt immer beim TZielFile = file of TZiel;

stehen

Das ganze soll auf drücken eines Buttons geschehen.
Den habe ich ZielErfassen als Name gegeben


Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

type
  TZiel = record
    Ort: String;
    Preis: real;
  end;
type
  TZielliste = record
  Ziele: array[1..100] of TZiel;
  ZielZahl: integer;
 end;

TZielFile = File of TZiel;

var
  Form1: TForm1;
  ZielListe: TZielliste;
  Zielfile: TZielFile;
  I: integer;


implementation

{$R *.lfm}

{ TForm1 }

procedure ZieleErfassen(var Liste: TZielListe);
begin
  with Liste do begin
    Ziele[1].Ort:='Dresden';
    Ziele[1].Preis:=16.00;
    with Ziele[2] do begin
      Ort := 'Berlin';
      Preis := 43.00;
    end;
  with Ziele[3] do begin
     Ort :='Aachen';
     Preis := 155.00;
  end;
  ZielZahl :=3;
  end;
end;
ZieleErfassen(ZielListe);
Assign(Zielfile, 'C:\Users\Notebook\Desktop\ziele.dat');
Rewrite(Zielfile);
with ZielListe do
   for I := 1 to ZielZahl do
      write(ZielFile, Ziele[I]);
   Close(ZielFile);
end;

end.

Geändert von EMS (19. Dez 2012 um 13:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Record in Datei speichern

  Alt 19. Dez 2012, 13:42
Ort als String kann hierfür nicht verwendet werden, da die Länge nicht fix ist

Ort: String[100] z.B. ginge
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#3

AW: Record in Datei speichern

  Alt 19. Dez 2012, 13:49
Hallo
Ja das hat jetzt schon weiter geholfen.
Mir ist aber geradea aufgefallen das mein Button gar nicht im Namen geändert ist da gibts immer nen Fehler...
Jetzt bin ich wieder ratlos?
was muss ich denn machen damit das halt einfach auf Knopfdruck das jetzt speichert?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Record in Datei speichern

  Alt 19. Dez 2012, 13:54
Einmal "type" genügt, solange keine andere Deklaration dazwischen erfolgt. Die Laufvariable I muss eine lokale Variable sein, und ändere mal Assign in AssignFile und Close in CloseFile. Außerdem hast Du wohl 2 "end" zuviel, rück mal korrekt ein, dann siehst Du auch, wo.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Record in Datei speichern

  Alt 19. Dez 2012, 13:55
Ich sehe keinen Button auf dem Formular. Damit sollte man am besten anfangen (Obwohl du einen Event-Handler für einen ButtonClick da stehen hast. Das schaut seltsam aus. Hast du das von Hand da hin geschrieben?)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#6

AW: Record in Datei speichern

  Alt 19. Dez 2012, 14:06
So hab nen paar Sachen geändert

Jetzt hab ich ein Problem mit Listen?
Ich hab das auch noch nicht so verstanden wieso bei der procedure in der Vorgabe das mit
(var Liste: TZielListe); drinne steht?





Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

  TZiel = record
    Ort:String[20];
    Preis: real;
  end;


  TZielListe = record
    Ziele: array[1..100] of TZiel;
    ZielZahl: integer;
  end;

TZielFile = file of TZiel;


var
  Form1: TForm1;
  ZielListe: TZielListe;
  ZielFile: TZielFile;
  I: Integer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
//procedure ZieleErfassen(var Liste: TZielListe);
   begin
     with Liste do
       begin
       Ziele[1].Ort:='Dresden';
       Ziele[1].Preis:=16.00;
       end;
       with Ziele[2] do
          begin
          Ort := 'Berlin';
          Preis := 43.00;
          end;
             with Ziele[3] do
             begin
             Ort :='Aachen';
             Preis := 155.00;
             end;
     ZielZahl :=3;

ZieleErfassen(ZielListe);
Assign(Zielfile, 'C:\Notebook\Desktop\ziele.dat');
Rewrite(Zielfile);
   with ZielListe do
      for I := 1 to ZielZahl do
      begin
      write(ZielFile, Ziele[I]);
      Close(ZielFile);
      end;
   end;

  end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Record in Datei speichern

  Alt 19. Dez 2012, 14:08
Vermutlich, weil Du eine eigene Prozedur "ZieleErfassen" schreiben sollst, die die übergebene Liste befüllen soll.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Record in Datei speichern

  Alt 19. Dez 2012, 14:16
Delphi-Quellcode:
procedure ChangeValue(var Value: integer);
begin
  Value := 10;
end;

procedure NotChangeValue(Value: integer);
begin
  Value := 10;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  I: integer;
begin
  I:= 1;
  NotChangeValue(I);
  ShowMessage(IntToStr(I));
  ChangeValue(I);
  ShowMessage(IntToStr(I));
end;
  Mit Zitat antworten Zitat
EMS

Registriert seit: 19. Dez 2012
97 Beiträge
 
#9

AW: Record in Datei speichern

  Alt 19. Dez 2012, 14:19
ah genau das hab ich gerade verstanden was mit dieser Procedur da gemeint ist.
Aber die Procedur an sich geht schon nicht.
Da kommen Fehler:

Identifier not found "Ziele"
Expression type must be class or record type
...
...

Fehlt da irgendwie noch eine deklaration?
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#10

AW: Record in Datei speichern

  Alt 19. Dez 2012, 14:40
Versuch mal folgendes

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ZielListe do
    begin
      with Ziele[1] do
        begin
          Ort:='Dresden';
          Preis:=16.00;
        end;

      with Ziele[2] do
        begin
          Ort := 'Berlin';
          Preis := 43.00;
        end;

      with Ziele[3] do
        begin
          Ort :='Aachen';
          Preis := 155.00;
        end;

      ZielZahl :=3;
    end;


  Assign(Zielfile, 'C:\Notebook\Desktop\ziele.dat');
  Rewrite(Zielfile);
  with ZielListe do
    for I := 1 to ZielZahl do
      write(ZielFile, Ziele[I]);

  Close(ZielFile);
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz