Autor Beitrag
MH1987
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 98



BeitragVerfasst: Fr 02.02.07 19:38 
hi,

ich habe vor bei meiner datenbank im menu unter Datei, jeweils die letzten 4 geöffneten dateien anzugeben!

jedoch kommt ein fehler in der procedure lade(filename: string)!
wenn ich auf importieren drücke, benuzt der die selbe procedure aber es funktioniert!
woran liegt das?

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:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
unit Film_Datenbank;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, NeuerFilm, Grids, ImgList, ExtCtrls;

type
  TFilm = record
            Name: string;
            Nummer: integer;
            Beschreibung: string;
            Bemerkung: string;
          end;
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei: TMenuItem;
    Exportieren: TMenuItem;
    Importieren: TMenuItem;
    Drucken: TMenuItem;
    Filme: TMenuItem;
    NeuerFilm: TMenuItem;
    FilmLoeschen: TMenuItem;
    FilmAendern: TMenuItem;
    Hilfe: TMenuItem;
    Ansicht: TMenuItem;
    FilmUebersicht: TMenuItem;
    FilmDetails: TMenuItem;
    FilmNummern: TMenuItem;
    OpenDialog1: TOpenDialog;
    SgDatenAusgabe: TStringGrid;
    Panel1: TPanel;
    Shape1: TShape;
    LF1: TMenuItem;
    LF2: TMenuItem;
    LF3: TMenuItem;
    LF4: TMenuItem;
    procedure ImportierenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure LF1Click(Sender: TObject);
  private
    procedure LastFilesAusgeben;
    procedure Lade(filename: string);
  public
    { Public-Deklarationen }
  end;

var
  Main: TForm1;
  filmliste: array [1..400of TFilm;
  lastFile: array [1..4of string;

implementation

{$R *.dfm}

procedure TForm1.Lade(filename: string);
var
  f: textfile;
  Name, Beschreibung, Bemerkung: string;
  Nummer, i: integer;
begin
  assignFile(f,filename);
  reset(f);
  i:= 1;
  while not eof(f) do
    begin
      readln(f, Name);
      filmListe[i].Name:= Name;
      readln(f, Nummer);
      filmListe[i].Nummer:= Nummer;
      readln(f, Beschreibung);
      filmListe[i].Beschreibung:= Beschreibung;
      readln(f, Bemerkung);
      filmListe[i].Bemerkung:= Bemerkung;
      inc(i);
    end;

  closeFile(f);
end;

procedure TForm1.ImportierenClick(Sender: TObject);
var
  i: integer;
begin
  if self.OpenDialog1.Execute
    then
      begin
        self.Lade(self.OpenDialog1.FileName);
        for i:= 4 downto 1 do
          if (i <> 1)
            then
              lastfile[i]:= lastfile[i-1];
        lastfile[1]:= self.OpenDialog1.FileName;
        self.LastFilesAusgeben;

        // hier kommt noch das speichern in die textdatei: 'lastfile.lf'

      end;
end;

procedure TForm1.LastFilesAusgeben;
begin
  self.LF1.Caption:= lastfile[1];
  self.LF2.Caption:= lastfile[2];
  self.LF3.Caption:= lastfile[3];
  self.LF4.Caption:= lastfile[4];
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  lf: textfile;
  i: integer;
begin

  [..]

  for i:= 1 to 4 do lastFile[i]:= '';

  assignFile(lf,'lastfile.lf');
  reset(lf);
  i:= 1;
  while not eof(lf) do
    begin
      readln(lf, lastfile[i]);
      inc(i);
    end;
  closefile(lf);

  self.LastFilesAusgeben;

end;

procedure TForm1.LF1Click(Sender: TObject);
begin
  self.Lade(self.LF1.Caption);
end;

end.


achja, es kommt ein 'ungültiger Dateiname' fehler


gruß,
Matthias
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 02.02.07 20:20 
Moin!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
...
procedure TForm1.Lade(filename: string);  
var  
  f: textfile;  
  Name, Beschreibung, Bemerkung: string;  
  Nummer, i: integer;  
begin  
  ShowMessage(Filename);
  assignFile(f,filename);  
  reset(f);
...

Was wird ausgegeben? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
MH1987 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 98



BeitragVerfasst: Fr 02.02.07 20:32 
hmm. er gibt den richtigen pfad an.
kann es an dem ö liegen?
D:\Zubehör\Programmieren\Delphi\Filme_Final\Filme.fdb
MH1987 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 98



BeitragVerfasst: Fr 02.02.07 20:40 
her mal der ganze projekt ordner
Einloggen, um Attachments anzusehen!
MH1987 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 98



BeitragVerfasst: Sa 03.02.07 14:29 
ok, ich habe den fehler selber gefunden!

dadurch, dass ich die datei mit dem pfad aus dem Caption vom menu geladen habe, war in dem string ein unterstrich, so wie im menu bei datei unterm D.

also habe ich den aufruf abgeändert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.LF1Click(Sender: TObject);  
begin  
  self.Lade(self.LF1.Caption);  //alt

  self.Lade(lastfile[1]); //neu
end;


gruß
Matthias