![]() |
Speichern einer Gästeliste!
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??? :gruebel:
Mfg TbErKeR |
Re: Allgemeines Problem
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:
Das Laden geht fast genauso. Routinen zum Hinzufügen hast du ja bereits, die musst du dann eben noch in der Schleife aufrufen.
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; Ist der Datentyp allerdings komplexer (Record), dann müsstest du uns schon ein wenig Code zeigen. |
Re: Speichern einer Gästeliste!
hi,danke für die schnelle antwort!
es ist ein record! hier ist der code!
Delphi-Quellcode:
Danke! Mfg TbErKeR
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. |
Re: Speichern einer Gästeliste!
oder gibt es eine funktion bei einem button der speichern kann??
|
Re: Speichern einer Gästeliste!
Das wäre dann die ultimative "Klickie-Bunti"-Komponente :lol: .
Das Speichern von AnsiStrings ist nicht ganz trivial, am Besten benutzt du einen Filestream (für Näheres ist die Suche zuständig :wink: ). 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. |
Re: Speichern einer Gästeliste!
hört sich nicht schlecht an mit der einen zeile,jedoch kenn ich mit mit oop nicht aus! hehe!
aber trotzdem danke! |
Re: Speichern einer Gästeliste!
Die Eigenschaft Items einer listbox ist vom Typ TStrngs ude besitzt die Methode SaveToFile.
Versuchs mal mit
Delphi-Quellcode:
und
ListBox1.Items.SaveToFile( 'guesst.txt');
Delphi-Quellcode:
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.
ListBox.Items.LoadFromFile('guests.txt');
|
Re: Speichern einer Gästeliste!
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!!! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz