AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern einer Gästeliste!

Ein Thema von TbErKeR · begonnen am 3. Feb 2006 · letzter Beitrag vom 3. Feb 2006
Antwort Antwort
TbErKeR

Registriert seit: 1. Feb 2006
Ort: Rheinland - Pfalz
5 Beiträge
 
#1

Speichern einer Gästeliste!

  Alt 3. Feb 2006, 12:02
Hi,ich bin noch ein Delphi Anfänger und hab vorher auch noch nichts mit Programierren am Hut gehabt. Ich hab jetzt folgendes Problem, wir haben in der Schule eine Gästeliste programiert mit einem Array. Jetzt hab ich die Gästeliste zuhause soweit fertig gemacht,nur ein Problem bleibt bestehen, das Abspeichern. Denn im Moment ist es so, man kann alles eintragen und auch die einzelnen Gäste an einer bestimmten Stelle aus der liste wieder löschen nur wenn ich jetzt einen Gästeliste fertig hab und das programm wieder zu mach sind ja auch meine Gäste weg. Also hier meine Frage: Wie kann ich meine Gäste speichern???

Mfg TbErKeR
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Allgemeines Problem

  Alt 3. Feb 2006, 12:13
Hallo,
herzlich willkommen.

Gleich vorweg: Ändere bitte den Beitragstitel in einen aussagekräftigen (Beitrag editieren).

Von welchem Datentyp sind denn die Elemente des Arrays? Sind es normale Strings kannst du das Array in einer for Schleife von Low(ArrayName) bis High(ArrayName) durchgehen und die Einträge entweder direkt in eine Textdatei schreiben oder, was für Anfänger evtl. einfacher ist, über eine Stringlist:

Delphi-Quellcode:
var
  MyArray: array ...
  Guests: TStringList;
  i: integer;

  ...

  Guests := TStringList.Create;
  try
    // Elemente hinzufügen ...
    for i := Low(MyArray) to High(MyArray) do
      Guests.Items.Add(MyArray[i];

    // ... und abspeichern
    Guests.SaveToFile('C:\guests.txt');
  finally
    // Speicher der StringList wieder freigeben
    FreeAndNil(Guests);
  end;
Das Laden geht fast genauso. Routinen zum Hinzufügen hast du ja bereits, die musst du dann eben noch in der Schleife aufrufen.

Ist der Datentyp allerdings komplexer (Record), dann müsstest du uns schon ein wenig Code zeigen.
  Mit Zitat antworten Zitat
TbErKeR

Registriert seit: 1. Feb 2006
Ort: Rheinland - Pfalz
5 Beiträge
 
#3

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 12:30
hi,danke für die schnelle antwort!
es ist ein record!
hier ist der code!
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
   

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
type
     Personendatenbank= Record
     Vorname : string;
     Nachname : string;
     Strasse: string;
     Hn: string;
     PLZ: string;
     Ort: string;
     Tel1: string;
     Tel2: string;
     end;
var
  Form1: TForm1; Name: String; gast: Array [1..50] of Personendatenbank;
  Personendatei: Personendatenbank;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject); var n, index, index2: Integer;
begin
 n:=StrToInt(Edit2.Text);
 ListBox1.Clear;
 gast[StrToInt(Edit2.Text)] .Vorname := (Edit1.Text);
 gast[StrToInt(Edit2.Text)] .Nachname := (Edit7.Text);
 gast[StrToInt(Edit2.Text)] .Strasse := (Edit3.Text);
 gast[StrToInt(Edit2.Text)] .Hn:= (Edit4.Text);
 gast[StrToInt(Edit2.Text)] .PLZ := (Edit5.Text);
 gast[StrToInt(Edit2.Text)] .Ort := (Edit6.Text);
 gast[StrToInt(Edit2.Text)] .Tel1 := (Edit8.Text);
 gast[StrToInt(Edit2.Text)] .Tel2 := (Edit9.Text);
 for index:= 1 TO 50 Do
  begin

   ListBox1.Items.Add(IntToStr(index)+'. '+gast[index] .Vorname + ' --- ' + gast[index] .Nachname + ' --- ' + gast[index] .Strasse + ' ' + gast[index] .Hn + ' --- ' + gast[index] .PLZ + ' --- ' + gast[index] .Ort + ' --- '+ gast[index] .Tel1 + ' / ' + gast[index] .Tel2 + ' ');


end;
  n:=n+1;
  Edit2.Text:=IntToStr(n);

end;

procedure TForm1.Button2Click(Sender: TObject);
var index: Integer;
begin

 ListBox1.Clear;
 gast[StrToInt(Edit2.Text)] .Vorname := '';
 gast[StrToInt(Edit2.Text)] .Nachname := '';
 gast[StrToInt(Edit2.Text)] .Strasse := '';
 gast[StrToInt(Edit2.Text)] .Hn:= '';
 gast[StrToInt(Edit2.Text)] .PLZ := '';
 gast[StrToInt(Edit2.Text)] .Ort := '';
 gast[StrToInt(Edit2.Text)] .Tel1 := '';
 gast[StrToInt(Edit2.Text)] .Tel2 := '';
 for index:= 1 TO 50 Do
  begin

   ListBox1.Items.Add (IntToStr(index)+'. '+gast[index] .Vorname + ' --- ' + gast[index] .Nachname + ' --- ' + gast[index] .Strasse + ' --- ' + gast[index] .Hn + ' --- ' + gast[index] .PLZ + ' --- ' + gast[index] .Ort + ' --- ' + gast[index] .Tel1 + '/' + gast[index] .Tel2 + ' ' );

end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

end.
Danke! Mfg TbErKeR
  Mit Zitat antworten Zitat
TbErKeR

Registriert seit: 1. Feb 2006
Ort: Rheinland - Pfalz
5 Beiträge
 
#4

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 18:42
oder gibt es eine funktion bei einem button der speichern kann??
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 18:54
Das wäre dann die ultimative "Klickie-Bunti"-Komponente .
Das Speichern von AnsiStrings ist nicht ganz trivial, am Besten benutzt du einen Filestream (für Näheres ist die Suche zuständig ). Wenn du allerdings wenigsten ein bisschen Erfahrung in OOP hast, würde ich an deiner Stelle den Record zu einer Klasse umformen. Dann benötigt Speichern und Laden jeweils eine Codezeile.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
TbErKeR

Registriert seit: 1. Feb 2006
Ort: Rheinland - Pfalz
5 Beiträge
 
#6

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 19:05
hört sich nicht schlecht an mit der einen zeile,jedoch kenn ich mit mit oop nicht aus! hehe!

aber trotzdem danke!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 19:16
Die Eigenschaft Items einer listbox ist vom Typ TStrngs ude besitzt die Methode SaveToFile.
Versuchs mal mit
ListBox1.Items.SaveToFile( 'guesst.txt'); und
ListBox.Items.LoadFromFile('guests.txt'); Dann wird zwar nur der Inhalt der Listbox gesichert, dies ist aber besser als nichts. Besser ist es natürlich, den Inhalt der einzelnen Record zu sichern. Wie lang werden die einzelnen Felder ? Wenn ShortStrings reichen ( <=255 Zeichen) könnte man eine typisierte Datei verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
TbErKeR

Registriert seit: 1. Feb 2006
Ort: Rheinland - Pfalz
5 Beiträge
 
#8

Re: Speichern einer Gästeliste!

  Alt 3. Feb 2006, 20:29
oooooohhhheeeerrrr,vielen dank es klappt!!!
ist zwar nur die listbox jedoch ist wie du schon sagtest besser wie nichts!

Vielen Dank!
Mfg TbErKeR

Wer noch Lust hat mir zu erklären wie ich dass ganze Programm speicher,soll dies ruhig machen!!!
  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 05:10 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