AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Unterschiedliche Daten speichern u. auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiedliche Daten speichern u. auslesen

Ein Thema von PierreB · begonnen am 23. Jun 2005 · letzter Beitrag vom 24. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
PierreB
(Gast)

n/a Beiträge
 
#1

Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:14
Moin,

erstmal sorry für den komischen Titel, ich steh nur heute etwas auf dem Schlauch.
Also los:

Ich habe 2 Listboxen und 2 Editfelder, in denen sich jeweils nur Text befindet. Jetzt möchte ich diese Daten irgendwo abspeichern und dann später wieder laden können. Beim Laden möchte ich dann das jeder Datensatz wieder da ist wo er eigentlich hingehört (z.B. in das zugehörige Editfeld). Jetzt stellt sich mir bloß die Frage, wie ich sowas realisieren könnte. Auf Datenbanken wollte ich eigentlich generell verzichten.

Hat jemand ne gute Idee ?

Vielen Dank schonmal,
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:17
wieviele datensätze sind es denn?
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:22
Zitat von ibp:
wieviele datensätze sind es denn?
Die Anzahl der Items in den Listboxen kann stark variieren, ich würde also sagen von 0-200 Items pro Listbox. Bei den Edits jeweils unter 150 Zeichen. Das die Listboxen-Items-Anzahl variiert macht mich noch verwirrter wie ich das anstellen soll.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#4

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:27
hi,

die listboxen kannst du mit listbox1.items.savetofile(datei) abspeichern und mit listbox1.items.loadfromfile(datei) wieder laden.

für die edits:
das würde ich mit einer ini-datei machen. wenn du nicht weisst wie das geht, such mal in diesem forum nach "ini", ich bin mir sicher, du findest mehr als genug.

gruss
urbanbruhin
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#5

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:37
Zitat von urbanbruhin:
hi,

die listboxen kannst du mit listbox1.items.savetofile(datei) abspeichern und mit listbox1.items.loadfromfile(datei) wieder laden.

für die edits:
das würde ich mit einer ini-datei machen. wenn du nicht weisst wie das geht, such mal in diesem forum nach "ini", ich bin mir sicher, du findest mehr als genug.

gruss
urbanbruhin
Ja das geht so aber nicht.

Ich möchte ja die Daten beider Listboxen und den Edits in einer einzigen Datei haben.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 15:43
Dann machst du das so:

Du speicherst immer die Position in der Datei und die Länge am anfang. also für 2 Strings so:
Code:
16 23 39 2 <Erster Strig; Pos: 16; Läge: 23><zeiter String; Anfang: 39; Länge: 2>
Quasi ein Inhaltsverzeichnis

Das ganze lässt sich relativ einfach mit streams realisieren
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#7

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 16:04
Delphi-Quellcode:
Listbox1 <'Gabi Mauserich' Pos: 1>
Listbox1 <'Olli Bierhoff' Pos: 2>
ListBox2 <'Peter Knoblauch' Pos: 1>
Edit1 <'Das ist aber komisch...'>
So könnte ich mir das nur vorstellen (Leider habe ich keine Ahnung von Streams ).
Ok, doch nehmen wir an meine ListBox1 hat 8 Items, dann gehe ich die alle mit ner for-Schleife durch und speichere die.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
for i := 1 to ListBox1.Items.Count do
// Speichern ??
end;
So hab ich mir das vorgestellt. Bloß weiß ich nicht wie ich das Speichern soll. Und irgendwie haut das mit der for-Schleife auch net hin, dass Maximum wird immer überschritten.

Ich krieg heut nix auf die Reihe, hilfe bitte.
  Mit Zitat antworten Zitat
Benutzerbild von Pitch-Bull
Pitch-Bull

Registriert seit: 7. Jun 2005
Ort: Stendal
90 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 16:59
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to ListBox1.Items.Count-1 do
// Speichern ??
end;
Damit hast du dann keinen fehler mehr mit dem listenindex!
Entropie ist keine Glücksgarantie
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 17:00
So ? (Code nicht getestet, nur mal so getippt)

Delphi-Quellcode:
procedure TFormX.LoadFromFile;
var
  afile: textfile;
  i, lb1Count, lb2Count: integer;
  s: string;
begin
  assignfile(afile, 'dateiname.ext');
  reset(afile);
  readln(afile, s);
  if s <> 'MyFileIdentthen
  begin
    showmessage('Nicht meine Datei, wird nicht geladen!');
    exit;
  end;
  readln(afile, s); // Load Edit 1
  edit1.text := s;
  readln(afile, s); // Load Edit 2
  edit2.text := s;
  readln(afile, lb1Count); // Anzahl der Listbox1 Einträge lesen
  readln(afile, lb2Count); // Anzahl der Listbox2 Einträge lesen
  listbox1.Clear;
  for i := 0 to lb1Count-1 do // Load Listbox 1
  begin
    readln(afile, s);
    listbox1.items.add(s);
  end;
  listbox2.Clear;
  for i := 0 to lb2Count-1 do // Load Listbox 2
  begin
    readln(afile, s);
    listbox2.items.add(s);
  end;
  closefile(afile);
end;

procedure TFormX.SaveToFile;
var
  afile: textfile;
  i: integer;
begin
  assignfile(afile, 'dateiname.ext');
  rewrite(afile);
  writeln(afile, 'MyFileIdent');
  writeln(afile, edit1.text); // Save Edit 1
  writeln(afile, edit2.text); // Save Edit 2
  writeln(afile, listbox1.items.count); // Anz. der Listbox1 Einträge sp.
  writeln(afile, listbox2.items.count); // Anz. der Listbox2 Einträge sp.
  for i := 0 to listbox1.items.count-1 do // Save Listbox 1
    writeln(afile, ListBox1.Items.Strings[i]);
  for i := 0 to listbox2.items.count-1 do // Save Listbox 2
    writeln(afile, ListBox2.Items.Strings[i]);
  closefile(afile);
end;
[6-mal bearbeitet, durchkorrigiert und müsste so laufen]
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Unterschiedliche Daten speichern u. auslesen

  Alt 23. Jun 2005, 22:06
file = evil; mach es doch mit streams!

Delphi-Quellcode:
type TEntry = record
 length:integer;
 value:string;
end;

procedure ListboxSave(lb: TListBox);
var stream:TFileStream;
    temp:TEntry;
begin
stream:=TFileStream.create('Listbox.lbs',fmCreate);

for i:=0 to lb.Items.count-1 do
 begin
  temp.length:=length(lb.Items[i]);
  temp.value := lb.Items[i];
  stream.write(temp);
 end;
 
stream.free;
end;
mit dem record ist das ganze zwar ein wenig oversized, aber das prinzip sollte klar sein.

zum laden dann:
Delphi-Quellcode:
stream.position:=0;
stream.read(temp.length,sizeof(integer));
stream.read(temp.value,temp.length);
EDIT: code nullmal bearbeitet und 100% fool proof und DAU-sicher( wenn ich mich nicht vertippt hab )
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:41 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