AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Neue Daten werden sortiert, geöffnete Datei nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Daten werden sortiert, geöffnete Datei nicht

Offene Frage von "absentsilence"
Ein Thema von absentsilence · begonnen am 12. Feb 2004
Antwort Antwort
absentsilence

Registriert seit: 1. Feb 2004
10 Beiträge
 
#1

Neue Daten werden sortiert, geöffnete Datei nicht

  Alt 12. Feb 2004, 18:36
Hallo!
Ich habe folgendes Problem: In meinem Programm, welches CDs verwaltet, kann ich das dynamische Array in der Listbox nach Interpret (alphabetisch) sortieren, wenn ich neue Datensätze eingebe. Aber wenn ich eine Datei öffne, wird diese nicht sortiert, stattdessen kommen nur Nullen. Was mache ich falsch?
Dies ist der entsprechende Quelltext:

Delphi-Quellcode:
implementation {$R *.dfm} 

type tCDname=Record
interpret, album:string[20];
end;

type tEintrag=Record
CDname:tCDname;
genre:string[15];
jahr:integer;
preis:real;
end;

type
  tAlleCDs = Array of tEintrag;
var
  daten:tAlleCDs;
  i:integer;
Datei öffnen:
Delphi-Quellcode:
{Datenbank öffnen}
procedure TForm1.Datenbankffnen1Click(Sender: TObject);
VAR Zeile : string;
datei:textfile;
begin
cd_listbox.Items.clear;
if oeffnen_dialog.Execute then
begin
AssignFile (Datei,oeffnen_dialog.Filename);
Reset (Datei);
while not eof (Datei) do
begin
SetLength(daten,Length(daten)+1);
i:=i+1;
Readln (Datei, Zeile);
cd_listbox.Items.Add (Zeile);
end;
CloseFile(Datei);
anzahl_edit.text:=IntToSTr(cd_listbox.items.Count);
end;
end;
Und die Sortierroutine + Listbox füllen:
Delphi-Quellcode:
procedure tausche(var l,j: tEintrag);
var h: tEintrag;
begin
h:=l;
l:=j;
j:=h;
end;
Delphi-Quellcode:
procedure TForm1.nachInterpret1Click(Sender: TObject);
var
ljahrstr, lmonatstr, ltagstr, lstdstr, lminstr, lsecstr:string;
l,j: integer;
begin
cd_listbox.items.Clear;
for l:=0 to high(daten)-1 do
for j:=l+1 to high(daten) do
begin
if daten[j].cdname.interpret < daten[l].cdname.interpret then
tausche(daten[l],daten[j]);
end;
with cd_listbox do
begin
For j:=0 to high(daten) do
begin
items.Add(daten[j].CDname.interpret+#9+daten[j].CDname.album+#9+
daten[j].genre+#9+inttostr(daten[j].jahr)+#9+floattostrf(daten[j].preis,fffixed,8,2));
end
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:46 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