Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Speichern von Record-Problem (https://www.delphipraxis.net/126193-speichern-von-record-problem.html)

Teekeks 19. Dez 2008 17:44


Speichern von Record-Problem
 
Hi!
Ich habe ein Problem beim speichern eines Records.
Ich habe follgenden Quellcode:
Delphi-Quellcode:
unit Einstellungen;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, ActnList;

type
  TSuche= record
    Suchanzeige:string;
    MAX_Suchbegr:integer;
  end;

  TTray= record
    Trayanzeigen:Boolean;
    Trayopen:Boolean;
  end;

  Spei= record
    Suche:TSuche;
    Tray:TTray;
  end;

  { TForm1 }

  TForm1 = class(TForm)
 //...
  private
    { private declarations }
  public
    { public declarations }
    Aktuell: Spei;
    Speicher: file of Spei;
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormShow(Sender: TObject);
begin
  Assignfile(Speicher,pathdelim+ExtractFilePath(paramstr(0))+pathdelim+'Data'+pathdelim+'sys.bve');
  Reset(Speicher);
  Aktuell:=Speicher;
  CloseFile(Speicher);
  Checkbox1.Checked:=Aktuell.Tray.Trayanzeigen;
  CheckBox2.Checked:=Aktuell.Tray.Trayopen;
  Edit1.Caption:=intToStr(Aktuell.Suche.MAX_Suchbegr);
  Edit2.Caption:=Aktuell.Suche.Suchanzeige;
end;
//...
Und ich kriege da die Meldung"Incopatibel types: got "file of Spei" expected "spei".

Was mach ich falsch??

gruß Teekeks

DP-Maintenance 19. Dez 2008 17:46

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

roga 19. Dez 2008 17:59

Re: Speichern von Record-Problem
 
In Records stets die Stringlänge angeben!

Delphi-Quellcode:
TSuche= record
  Suchanzeige:string[255]; // Hier!!
  MAX_Suchbegr:integer;
end;

Teekeks 19. Dez 2008 18:04

Re: Speichern von Record-Problem
 
OK. Aber das Problem ist immernoch da...

DeddyH 19. Dez 2008 18:09

Re: Speichern von Record-Problem
 
Zitat:

Delphi-Quellcode:
Aktuell:=Speicher;

Das sind doch 2 unterschiedliche Typen, die kannst Du nicht zuweisen.

Teekeks 19. Dez 2008 18:22

Re: Speichern von Record-Problem
 
Sind doch beide vom Typ Spei. Nur das dass eine eben ein File davon ist.
Wie lese ich denn sonst Speicher in Aktuell ein?

DeddyH 19. Dez 2008 18:26

Re: Speichern von Record-Problem
 
Mit Read. Syntax:
Delphi-Quellcode:
Read(Dateivariable, Puffervariable);

Teekeks 19. Dez 2008 18:29

Re: Speichern von Record-Problem
 
OMG ist das peinlich... :oops:
das war zu einfach ^^

Danke!

gruß Teekeks

Teekeks 19. Dez 2008 18:41

Re: Speichern von Record-Problem
 
Hmm. jetzt konnte er immerhin Debuggen... aber beim aufrufen der Form kommt erst "Project raised exeption class 'RunError(2)'." und dann:
" Adresse: $08063900
Procedure: SYSTEM_HANDELEERRORADDRFRAME$LONGINT$POINTER$POINT ER
Datei:
"
Und bleibt dann bei
Delphi-Quellcode:
reset(Speicher);
stehen.

Was ist da jetzt schonwieder falsch?

gruß Teekeks

DeddyH 19. Dez 2008 18:47

Re: Speichern von Record-Problem
 
Gibt es die Datei schon? Wenn nicht, musst Du sie erst mit Rewrite anlegen.

Hawkeye219 19. Dez 2008 18:52

Re: Speichern von Record-Problem
 
Hallo,

Delphi-Quellcode:
Assignfile(Speicher,pathdelim+ExtractFilePath(paramstr(0))+pathdelim+'Data'+pathdelim+'sys.bve');
Du solltest dir den zusammengebastelten Dateinamen einmal anzeigen lassen, dann findest du den Fehler bestimmt.

Gruß Hawkeye

DeddyH 19. Dez 2008 18:54

Re: Speichern von Record-Problem
 
Das außerdem :mrgreen:

Teekeks 20. Dez 2008 08:57

Re: Speichern von Record-Problem
 
Nunja bis jetzt gab es keine probleme mit dem Pfad auch wenn da 2pathdelimiter drinne vorkommen(nacheinander).
Aber es stimmt. sich hatte vergessen die Datei zu erzeugen ^^
hmmm. aufjedenfall danke!

gruß Teekeks

Hawkeye219 20. Dez 2008 09:17

Re: Speichern von Record-Problem
 
Zitat:

Zitat von Teekeks
Nunja bis jetzt gab es keine probleme mit dem Pfad auch wenn da 2pathdelimiter drinne vorkommen(nacheinander).

Und das Pfadtrennzeichen vor dem Laufwerksbuchstaben hat wirklich keine Probleme bereitet?

Gruß Hawkeye

Teekeks 20. Dez 2008 12:49

Re: Speichern von Record-Problem
 
Ich hab Linux. Da gibts keinen Laufwerksbuchstaben :-D
habs jetzt aber geändert...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.

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