Autor Beitrag
blackmoses
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 12.02.07 09:45 
hallo
bräuchte mal ganz dringend hilfe...
ich weiß ja net ma wie ich anfangen soll^^

also ich soll ein programm erstellen das aus einer datei die datensätze ausliest is also eine typisierte datei die über eine combobox ausgewählt wird (gibt mehere)
dann sollen die enthaltenen datensätze dynamisch edit felder erzeugen wo die daten drinstehen
kann mir da einer bitte ma ein kleines beispiel geben weil ich nämlich ünberhaupt keinen schimmer hab bin haltn n00b^^

habt schon ma dank
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 12.02.07 10:03 
blackmoses Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 12.02.07 10:22 
ja das habe ich mir jetzt intensiv angesehen also etwas licht scheint es ja zugeben aber ein kleines zusammenhängendes beispiel wäre ganz gut danke
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 12.02.07 10:45 
Hast Du Dir schon die Demo-Sourcen angesehen? Das ist imho ein kleines zusammenhängendes Beispiel.
blackmoses Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 12.02.07 15:37 
so ich bin jetzt soweit:

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:
type
  TStructRec = record
    Name : string[64];
    AttribID : integer;
    FdType : integer;
    Length : integer;
    Date1 : TDateTime;
    Date2 : TDateTime;
    Reverse1 : Cardinal;
    Reverse2 : Cardinal;
  end;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  datei : file of TStructRec;
  temp : TStructRec;
  i,i2 : integer;
begin
  case ComboBox1.ItemIndex of
    -1 : begin
          assignfile(datei,ExtractFilePath(paramstr(0))+'ANG_ARB.MER');
          reset(Datei);
          for i := 0 to Filesize(Datei) - 1 do
          begin
            Read(Datei,temp);

            for i2 := 1 to 8 do
            begin
              SetLength(edits,length(edits) + 1);
              edits[high(edits)] := TEdit.Create(self);
              with edits[high(edits)] do
              begin
                parent := Self;
                SetBounds(50*i,21 * i2,50,21);
              end;
            end;
            edits[high(edits) - 7].Text := temp.name;
            edits[high(edits) - 6].Text := inttostr(temp.AttribID);
            edits[high(edits) - 5].Text := inttostr(temp.FdType);
            edits[high(edits) - 4].Text := inttostr(temp.Length);
            edits[high(edits) - 3].Text := DateTimeToStr(temp.Date1);
            edits[high(edits) - 2].Text := DateTimeToStr(temp.Date2);
            edits[high(edits) - 1].Text := inttostr(temp.Reverse1);
            edits[high(edits) - 0].Text := inttostr(temp.Reverse2);

          end;
          closefile(Datei);
        end;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i : integer;
begin
  for i := 0 to high(edits) do edits[i].Free;
end;


das hab ich jetzt funktioniert auch teilweise nur so man über einen opendialog eine beliebige datei öffnen können und er scheint die gleichen datensätze öfter anzuzeigen

Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 12.02.07 15:55 
user profile iconblackmoses hat folgendes geschrieben:
das hab ich jetzt. funktioniert auch teilweise. nur soll man über einen opendialog eine beliebige datei öffnen können. und er scheint die gleichen datensätze öfter anzuzeigen.
Versuche mal lesbare Sätze zu produzieren. Ich habs im Zitat mal lesbar gemacht. Wenn was anderes gemeint war, dann korrigiere das bitte.

Eine "beliebige", typisierte Datei, kann man zwar öffnen, aber man muss die Struktur kennen. Ansonsten endet das in Raterei. Du kannst anhand der Datei nicht feststellen, welche Struktur (Record) vorliegt.

Warum die gleichen Datensätze öfter angezeigt werden, kann ich so nicht erkennen. Es sei denn, die Datensätze sind tatsächlich öfter in der Datei vorhanden.
blackmoses Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 12.02.07 16:36 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type
  TStructRec = record
    Name : string[64];
    AttribID : integer;
    FdType : integer;
    Length : integer;
    Date1 : TDateTime;
    Date2 : TDateTime;
    Reverse1 : dword;
    Reverse2 : dword;
  end;


das ist doch die struktur der datei so ist sie aufgebaut und es sind wirklich mehere datensätze enthalten.

ja sorry wegen dem wirschen satzbau.

Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 12.02.07 17:04 
Jetzt wird es etwas klarer.
Du hast mehrere Dateien, aber alle haben die selbe Struktur. Dann musst Du vor dem Öffnen der Datei den TOpenDialog einsetzen. Ungeprüftes Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
if opendialog.execute = mrOK then
begin
  assignfile(f, opendialog.filename);
  reset(f);
end;
Das ist jetzt aus dem Kopf hingeschrieben. Möglicherweise ist es tatsächlich etwas anders. Aber dafür kannst Du ja auch nochmal in der Delphi-Hilfe nachsehen.