Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speichern - ein großes Problem (https://www.delphipraxis.net/88381-speichern-ein-grosses-problem.html)

Bruce86 14. Mär 2007 22:57


Speichern - ein großes Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
So nun hoffe ich mal dass ihr mir, wie in den letzten tag, auch noch hierbei helfen könnt!
Es geht um das speichern!

Ich würde ganz gerne die Daten, die für die schüler eingegeben werden, die auswahl der chekcboxen auf den schüler bezogen, sowie das bild was zu dem schüler gehört in eine rdatei speichern! wenn es nicht gleich für mehrere geht würde es mir auch erstmal für einen schüler reichen! ;-)
Weiß das klingt unheimlich viel hoffe nur es ist nciht wirklich so viel wie es sich anhört!

Vllt erkläre ich nochmal kurz was in meinem Projekt vorgeht!

Also(siehe screenshot) es werden bei den schülerdaten die Daten der schüler(Name, Vorname etc pp) engegeben dann werde diese an die listbox übermittelt und können dann wieder in die edits zurückgegeben werden! weiterhin wählt man die fächer für jeden schüler aus und sofern vorhanden lädt man ein bild für diesen schüler hoch!
Meins ziel ist eigentlich dass alle daten aller schüler einer Schulklasse später in einer datei gespeichert werden! Ich glaube fast dass das eine ewigkeit braucht bis ich soweit bin aber wenn ihr mir hier im ansatz helfen könntet wäre das super! notfalls muss es eben für jeden schüler abgespeichert werden!

Das gleiche problem würde dann beim laden auftreten aber wenn das speichern erstmal realisiert ist denke ich mal kann ich mich in den rest dann weiter reinfuchsen!

Hoffe es gibt eine lösung für mein problem! ok gibt es sicherlich denn andere programme können es ja auch aber ob das dann nicht alles zu hoch gegriffen ist? Ich glaube das ist wohl eher das problem! Vielen Dank schon mal für eure hilfe!

Luckie 14. Mär 2007 23:16

Re: Speichern - ein großes Problem
 
Dafür würde sich eine XML-Datei anbieten, denke ich.

Billi Berserker 15. Mär 2007 00:03

Re: Speichern - ein großes Problem
 
Es gäbe mehrere Möglichkeiten :)

Wie bereits schon erwähnt eine XML Datei,
da würden die Daten in etwa so gespeichert:
XML-Code:
<Klasse>
  <Schüler>
    <Name>123</Name>
    <Vorname>456</Vorname>
  </Schüler>
  <Schüler>
    <Name>abc</Name>
    <Vorname>def</Vorname>
  </Schüler>
</Klasse>
uws.
Das benutzen von so einfachen XML Dateien geht meiner Meinung nach am besten mit der TJvSimpleXML Komponente die bei JVCL dabei ist.


Eine Alternative wäre die Daten ganz normal in eine Text Datei zu schreiben.
Hierfür würde ich mich der TStringList Komponente bedienen und die CommaText Eigenschaft selbiger gnadenlos ausnutzen.
D.h. beim speichern fügst du die Daten für jeden Schüler in einer bestimmten Reihenfolge in eine TStringList. Mit TStringList.commatext bekommst du damit einen Schüler in einer Textzeile. Diese eine zeile speicherst du in die Textdatei für jede Klasse. Der zweite Schüler wird dann in die zweite Zeile gespeichert, etc.
sieht dann in etwa so aus:
"123","456","...","..."
"abc","def","...","..."
Beim laden machst du das ganze rückwärts. Du ließt die Textdatei Zeilenweise aus und lädst die Komma Text Zeile rückwärs in deine TStringList. Damit hast du die einzelnen Elemente des Schülers dann wieder in der StringList...
So ists zwar nicht gerade besonders schön, aber man spart sich den streß die Zeile per hand auseinander zu nehmen ;)

Bruce86 15. Mär 2007 06:55

Re: Speichern - ein großes Problem
 
Ok! Dashört sich schon mal sehr gut an!
Doch hier gleich mal ne frage zu! Was ist mit den variablen gemeint also 123;456;abc...
Was soll an die stelle dieser Variablen?
Und wie kann ich dort das zu dem schüler gehörige Foto abspeichern?

Wäre mal ein ganzer quellcode mit erläuterungen drinne? könnt ja dann ne erklärung hinschreiben wo ich es selbst dann konfigurieren muss was also dannan diese stelle muss! muss ich zuvar records oder der gleichen deklarieren?

MFG

Bruce86

bitsetter 15. Mär 2007 07:32

Re: Speichern - ein großes Problem
 
Hi,

wie groß sind die Bilddateien, welches Bildformat haben diese und haben die Bilder sogar die gleiche Dateigröße?

sirius 15. Mär 2007 07:44

Re: Speichern - ein großes Problem
 
Zitat:

Und wie kann ich dort das zu dem schüler gehörige Foto abspeichern?
Du speicherst einfach den Dateinamen des Bildes.

(123 steht da für den Namen z.B.: Meier)
(456 entsprechend für Max)

Bruce86 15. Mär 2007 08:08

Re: Speichern - ein großes Problem
 
Die Bilddateien liegen um die 30kb und weniger und sind im *.bmp gespeichert

Billi Berserker 15. Mär 2007 10:11

Re: Speichern - ein großes Problem
 
Die bmp Dateien würde ich einfach so als Bitmaps speichern, eventuell in nem extra ordner.

Beispiel code für XML (blind programmiert und nicht getestet)
(ich habe auch keine ahnung wie dein code strukturiert ist, hier so wie ich es machen würde - weiß auch gerade nicht ob ü in xml als item name geht)
Delphi-Quellcode:
procedure Speichern;
var
  n : integer;
  XML : TJvSimpleXML
  Schüler : TSchüler
begin
  XML := TJvSimpleXML.Create(nil);
  try
    XML.Root.Name := 'Klasse X';
    for n := 0 to SchülerList.Items.Count - 1 do
        with XML.Root.Items.Add('Schüler').Items do
        begin
          item := TSchüler(SchülerList.Items.Item[n]);
          Add('Name',Schüler.Name);
          Add('Vorname',Schüler.Vorname);
          ...
            // restlichen Eigenschaften
          ...
          Schüler.Bitmap.SaveToFile('C:\Fotos\' + Schüler.Name + ' ' + Schüler.Vorname + '.bmp');
        end;
    XML.SaveToFile('C:\klassex.xml');
  finally
    XML.Free;
  end;
end;

procedure Laden;
var
  n : integer;
  XML : TJvSimpleXML;
  Schüler : TSchüler
begin
  XML := TJvSimpleXML.Create(nil);
  try
    XML.LoadFromFile('C:\klassex.xml');
    for n := 0 to XML.Root.Items.Count - 1 do
        with XML.Root.Items.Item[n].Items do
        begin
          Schüler : TSchüler.Create;
          Schüler.Name := Value('Name');
          Schüler.Vorname := Value('Vorname');
          ...
          // restlichen Eigenschaften
          ...
          Schüler.Bitmap.LoadToFile('C:\Fotos\' + Schüler.Name + ' ' + Schüler.Vorname + '.bmp');
          SchülerList.Items.Add(Schüler);
        end;
  finally
    XML.Free;
  end;
end;

Bruce86 15. Mär 2007 10:12

Re: Speichern - ein großes Problem
 
Wie setze ich das:
Zitat:

<Klasse>
<Schüler>
<Name>123</Name>
<Vorname>456</Vorname>
</Schüler>
<Schüler>
<Name>abc</Name>
<Vorname>def</Vorname>
</Schüler>
</Klasse>
fort wenn es um die bilder,die auswahl der fächer(checkboxen) und Telfonnummern etc geht????

Könnt ihr das mal so an einem beispiel ausführlich ausschreiben?

Wäre Super

Vielen Dank im Vorraus

Bruce86

Bruce86 15. Mär 2007 10:20

Re: Speichern - ein großes Problem
 
Hi Billi Berserker!

muss ich dafür vorher ein record deklarieren?

Delphi-Quellcode:
type Tschueler = record
     Name :string;
     Vorname: string;
         .
         .
         .
     end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.
Seite 1 von 2  1 2      

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