Record abspeichern

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
fruchtigfit
Beiträge: 5
Registriert: Di 6. Aug 2013, 10:26

Record abspeichern

Beitrag von fruchtigfit »

Hallo zusammen,

ich probiere nun schon seit ne ganzen Weile ein Record zu speichern, habe dazu au schon einiges gelesen doch leider hänge ich schon eine Variable global zu denfinieren.
Als Fehler kommt immer das "Rezept" nicht gefunden werden kann. Wo liegt mein Fehler? Absolter Idotenfehler bestimmt. Hier der Auszug aus meinem Quelltext.

Code: Alles auswählen

 type
 Rezept = record
     name      : string[32];
     Zutat1       : string[32];
     Zutat2       : string[32];
     Zutat3       : string[32];
    Zubereitung  : string[225];
end     ;
 
 [...]
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form4: TForm4;
  datei: type of Rezept;
 
implementation
 
{$R *.lfm}
 
{ TForm4 }       
[...]



Vielen vielen Dank für eure Hilfe schonmal!
Zuletzt geändert von Lori am Fr 9. Aug 2013, 21:11, insgesamt 1-mal geändert.
Grund: Highlighter

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Record abspeichern

Beitrag von mischi »

datei: type of Rezept;
->
datei: Rezept;

Sonst seh ich nichts.
MiSchi macht die fink-Pakete

indianer-frank
Beiträge: 134
Registriert: So 30. Nov 2008, 21:53

Re: Record abspeichern

Beitrag von indianer-frank »

Wenn's wirklich eine Datei sein soll, mußt du die Variable datei wiefolgt deklarieren:

Code: Alles auswählen

 datei: file of Rezept;
Ansonsten reicht

Code: Alles auswählen

 datei:  Rezept;
aber dann ist datei halt ein Record.

fruchtigfit
Beiträge: 5
Registriert: Di 6. Aug 2013, 10:26

Re: Record abspeichern

Beitrag von fruchtigfit »

unit3.pas(77,17) Error: Identifier not found "Rezept"

Die Fehlermeldung kommt aber bei beiden Methoden. REzept ist doch aber schon weiter oben genannt

indianer-frank
Beiträge: 134
Registriert: So 30. Nov 2008, 21:53

Re: Record abspeichern

Beitrag von indianer-frank »

Entweder ist bei Dir die Recorddefinition für Rezept zb versteckt in einer anderen Unit und nicht verfügbar, oder die Deklaration von datei folgt nicht wie angegeben unmittelbar nach var Form4: TForm4;, sodaß ein var davor fehlt. Das folgende Stück wird ohne Fehler kompiliert:

Code: Alles auswählen

type
  Rezept = record
             name : string[32];
             Zutat1 : string[32];
             Zutat2 : string[32];
             Zutat3 : string[32];
             Zubereitung : string[225];
           end;
var
  Datei: file of rezept;
 

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: Record abspeichern

Beitrag von Linkat »

Hallo fruchtigfit,
willkommen im Lazarusforum.

Versuch mal die Type-Deklaration unter implementation zu schreiben.

Gruß, linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

fruchtigfit
Beiträge: 5
Registriert: Di 6. Aug 2013, 10:26

Re: Record abspeichern

Beitrag von fruchtigfit »

ok jetzt nach vielen grauen Haaren hab ichs hinbekommen.....

Jetzt möchte ich auch noch nen memo speichern, hab bisher

Memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr( 0 )) + 'dateiname.txt');

das klappt auch mit dem Laden nachher, jedoch speichert er das immer jetzt immer unter "dateiname". Dateiname ist aber eigentlich bei mir eine Variable die ich über ein Editfeld ändern kann, aber in der ZEile nimmt er dann den Namen nicht auf.

Könnt ihr mir einen RAt geben?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Record abspeichern

Beitrag von m.fuchs »

Na dann zeig doch mal den Code der nicht klappt.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: Record abspeichern

Beitrag von Linkat »

Hallo fruchtigfit,
wäre nicht schlecht, wenn du die Lösung deines Problems auch allen mitteilst.
Dann könntest du den Thread als gelöst kennzeichnen.
Und für dein neues Problem solltest du einen neuen Thread öffnen.

Tipp: Entferne mal die Hochkomma um deinen dateinamen.txt

Gruß,
linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

fruchtigfit
Beiträge: 5
Registriert: Di 6. Aug 2013, 10:26

Re: Record abspeichern

Beitrag von fruchtigfit »

na klar war das Problem mi dem Record nur nen Leichtsinnsfehler, ich hatte vergessen die Units miteinander zu verknüpfen(unter uses einbinden)

Linkat hat geschrieben:

Tipp: Entferne mal die Hochkomma um deinen dateinamen.txt


linkat


Danke für die schnelle Hilfe immer, aber das entfernen führt zu folgendem Fehler: unit3.pas(47,93) Error: Illegal qualifier.

indianer-frank
Beiträge: 134
Registriert: So 30. Nov 2008, 21:53

Re: Record abspeichern

Beitrag von indianer-frank »

fruchtigfit hat geschrieben:
Linkat hat geschrieben:Tipp: Entferne mal die Hochkomma um deinen dateinamen.txt
linkat

Danke für die schnelle Hilfe immer, aber das entfernen führt zu folgendem Fehler: unit3.pas(47,93) Error: Illegal qualifier.
Dieser Fehler bedeutet, daß der Compiler auf das .txt-Feld von dateiname zu greifen will. Dateiname ist aber wohl ein String und hat sowas nicht. Wenn also dateiname die Variable ist, die den eigentlichen Name enthält, muß Du schreiben

Code: Alles auswählen

Memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr( 0 )) + dateiname);

fruchtigfit
Beiträge: 5
Registriert: Di 6. Aug 2013, 10:26

Re: Record abspeichern

Beitrag von fruchtigfit »

indianer-frank, vielen Dank. So funktioniert es. Jetzt ist mein Programm so gut wie fertig :) :)

Antworten