Lernauftrag mit diversen problemen (Delphi)

@

@milhouse

moin,
ich muss weil lehrer krank folgendes problem lösen:

Notendurchschnittsberehnung:
beliebig viele noten in 3 fächern, klausernoten zählen 50% pro halbjahr
eingegebene einzelnoten sollen zur kontrolle am bildschirm ausgegeben werden, letzte note soll geändert werden können (zur korrektur evtl.)
die werte sollen in einer datei gespeichert werden
es sollen mehrere schüler erfasst werden können


am besten wäre sicherlich eine oberfläche, mit edit feldern, in die die noten eingetragen werden können (dann müsste überprüft werden ob die felder ausgefüllt sind)und dann einfach alles in datei speichern
______________________________________________________________
meine probleme:
wie kann ich die eingabefelder zusammenfassen, so dass ich sie sinnvoll speichern kann?
speichern eines wertes geht schon so einigermaßen, aber mehrere...
muss ich für jeden schüler ein extra formular erstellen, oder geht das auch einfacher?

Danke schon mal
mail: milhouse2000@freenet.de
ICQ : 110687627
 

Arne Buchwald

Erfahrenes Mitglied
Hallo,

> ich muss weil lehrer krank folgendes problem lösen:

Na ja, du stellst dir das alles relativ einfach vor. Bei der vermutlichen Komplexität des Programmes kann man nicht mehr "einfach alles in datei speichern", sondern vielmehr in eine Datenbank.
Einfache (z.B. ini-)Dateien sind viel zu unhandlich für "komplexere" (SQL-)Abfragen.
Für die Planung der Datenbank musst du dir erstmal überlegen, welche Eingaben / Daten benötigt werden und dann die entsprechenden Felder in der jeweiligen Datenbank erstellen.
Für jeden Schüler wird dann ein neuer Datensatz in der Datenbank erstellt.

Insgesamt ein ziemlich komplexes Projekt, dass du wahrscheinlich nicht alleine und in kurzer Zeit lösen kannst.
 
@

@milhouse

moin,

ich weiß, dass es wahrscheinlich am besten über ne datenbank geht, aber in delphi kann ich fast nix, außerdem soll es laut aufgabe in einer textdatei gespeichert werden (in PHP hätt ich damit keine probleme)

nun noch eine frage: wie kann ich edit felder in einer datei speichern? ich hab ein TMemo speichern können, aber sonst nix.

das geht:
savedialog1.execute;
zensur1.lines.SaveToFile(savedialog1.filename);

das geht nicht:
edit1.text.SaveToFile(opendialog1.filename);

[Error] zensuren.pas(72): Record, object or class type required


mfg
@milhouse
 

Arne Buchwald

Erfahrenes Mitglied
Hallo @milhouse,

ich habe dir eben folgenden Code zusammengeschrieben. Damit kannst du den Inhalt aller Editfelder in eine durch den SaveDialog ausgewählte Datei schreiben.

Code:
procedure TForm1.Button1Click(Sender: TObject);
const Anzahl : integer = 20;
var sl: TStringlist;
    i : integer;
begin
  if SaveDialog1.Execute then
  begin
    sl:= TStringlist.Create;
    for i:=1 to Anzahl do
    begin
      sl.Add(TEdit(FindComponent('Edit'+IntToStr(i))).Text);
    end;
    sl.SaveToFile(SaveDialog1.Filename);
    sl.free;
  end;
end;
 

Thomas Kuse

Erfahrenes Mitglied
also MUSST du dass denn in delphi programmieren? wenn du es eh nich kannst?

ich mein ich hab das glaub ich nich ganz verstanden mit deinem lehrer aber du willst ja halt nur ne notendurchschnittsberechnung durchführen, die man doch auch locker mit php machen kann.

btw ich mein ja nur so....
 
@

@milhouse

moin,
danle für die schenlle antwort ich werds mal probieren;

@joki: jep es muss Delphi sein, auch wenn ich damit leider nicht umkomme, aber wenn bei uns die lehrer krank sind, dann verteilen sie lernaufträge, damit die schüler beschäftigt sind

cu
milhouse
 

Thomas Kuse

Erfahrenes Mitglied
achso....schon klar!

kannst du dir keine struktur für deine bedürfnisse generieren?
allein du musst doch durchsehen oder nich?

dann benutz doch pascal-uralt befehle wie append und öffne damit deine datei und schreib genau das rein was du willst!

delphi hat dann zwar ganz schön mit dem seeken der datei zu tun, aber was kümmert dich das?!

imitier doch einfach eine datenbank!

speicher einfach jede zensur mit zwei oder auch mehr ids ab!
eine id beschreibt das fach, die andere die person....

danach schreibst du in die datei deine fächer mit zugehöriger id, dann die schüler....
 
@

@milhouse

moin,
so das speichen funzt jetzt, ich hab den code ein bisschen gekürzt, und ich versteh jtzt auch was ich tue:

begin
SaveDialog1.Execute ;
sl:= TStringlist.Create;
for i:=1 to Anzahl do
begin
sl.Add(TEdit(FindComponent('Edit'+IntToStr(i))).Text);
end;
sl.SaveToFile(SaveDialog1.Filename);
end;

ich hab jetzt die zensuren in der datei, alle untereinander stehen
mit dem auslesen gehts noch nicht voran, aber ich werd mal meine alten pascal sachen rauskramen

gut n8
milhouse
 
@

@milhouse

moin,
also mit pascal komm ich auch nich so richtig weiter, ich hab versucht mit

"while not eof do"

aber ich weiß nicht wie ich zeilenweise auslesen kann und das ganze wieder in eine stringlist bekomme, und dann das ganze auch noch wieder in die edit felder zurückbekomme


die sache mit den verschieden schülern ist ja schon dadurch gelöst, dass mit speichern unter verschiedene dateinamen für verschiedene schüler angegeben werden können

cu
milhouse
 

Arne Buchwald

Erfahrenes Mitglied
Hallo,

@^2milhouse: :) Nimm einfach den Code so, wie ich ihn geschrieben habe und lass nicht unbedacht Sachen weg! Das sl.free ist sehr wichtig, dass die Stringlist nach dem Gebrauch auch wieder aus dem Speicher entfernt wird.

So a murx! Gerade wollte ich den Code fürs Öffnen zusammenschreiben und da schmiert mir Delphi ab :mad: .....

Jetzt jedenfalls der Code:
Code:
procedure TForm1.Button1Click(Sender: TObject);
const Anzahl : integer = 20;
var sl: TStringlist;
    i : integer;
begin
  if OpenDialog1.Execute then
  begin
    sl := TStringList.Create;
    for i:=1 to Anzahl do
    begin
      TEdit(FindComponent('Edit'+IntToStr(i))).Text:= sl.Strings[i-1];
    end;
    sl.free;
  end;
end;