![]() |
Telefonbuch-Schuleprojekt und wir sind hilflos
Hallo Leute ich hab ein riesengroßes problem, naja jedenfalls für mich riesengroß.
Und zwar behandeln wir im Informatikunterricht zur Zeit Delphi und wurden da mehr oder weniger ins kalte Wasser geworfen. Wir haben Gruppen gegründet und jede muss ein anderes Projekt entwerfen. Meine Gruppe (3 Personen) muss ein Telefonbuch erstellen. so weit so gut. Wir haben uns durch verschiedene Foren geklickt, infos gesammelt und sogar teilweise quelltexte so übernommen, aber nichts will klappen. Nun hier meine Frage: Wir haben uns das in etwa so vorgestellt, dass der Benutzer die Eingaben in ein stringgrid tätigt und diese Daten dann in einer Datei speichern kann. Es sollte möglich sein Ort und Name der Datei zu wählen und diese dann auch später wieder laden zu können. Es sollte auch möglich sein, dass der benutzer nicht alle Felder der stringgrid ausfüllt die nebeneinander sind und dass trotzdem wieder alles richtig geladen wird. So das ist die Aufgabe und wenn wir ehrlich sind haben wir keine Ahnung wie das machbar ist und ob überhaupt. Kann uns hier vielleicht jemand helfen? ihr seid sozusagen unsere letzte Hoffnung mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Schönen Guten Abend,
erstmal herzlich Willkommen in der Delphi-PRAXiS. :dp: Um es gleich vorweg zu sagen: Eure Hausaufgaben wird hier keiner machen. ;) Wenn Du / Ihr uns aber erzählt, woran es scheitert, was ihr versucht habt etc. pp. helfen wir gerne. |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
DAnke für das Willkommen.
natürlich wird hier keiner unsere Hausaufgaben amchen das bringt auch nix-will das abi ja auch schaffen^^ Ja was wir versucht haben hmm gute frage, wir haben versucht im Internet ne erklärung für sowas zu finden weil wie gesagt, wir ins kalte Wasser geworfen wurden und vorher nie mmit Delphi gearbeitet haben. Wir kennen einfach die Befehle nicht de zur Umsetzung dienlich sind bzw. das einzige was ich mit delphi erstellen kann ist nen Programm zur Addition/Subtraktion/Division/Multiplikation mehrere Zahlen mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Also erstmal auch ein Hallo von mir.
:arrow: Bist du dir sicher, dass es sich um Delphi für .NET handelt? :arrow: Mach dich mal mit Datenbanken vertraut. Dazu gibts auch massig Tutorials hier in der DP oder auf dsdt.info. Damit müsste sich das relativ einfach realisieren lassen. :arrow: Ohne Datenbanken geht's natürlich auch. Mach dich hier mit Datenspeicherung vertraut. Ini-Files wäre hier das einfachste. Schöner fände ich aber XML. MfG Steffen |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Hi,
ins kalte Wasser geworfen glaube ich Dir jetzt nicht so ganz. Ihr beschäftigt Euch 100% mit Delphi im Unterricht und Eurer Lehrer wird Euch sicherlich keine Aufgabe stellen, die Ihr nicht schaffen könnt. Ich kann Euch daher wärmstens die Tutorials auf ![]() |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Ja das mit dem ins kalte Wasser geworfen worden glauben die wenigsten aber es ist leider so.
Er hat sich selber erst kürzlich mit delphi auseinander gesetzt, dies hat er vor uns zugegeben und sich dafür auch entschuldigt. DAs ist ja auch völlig ok aber...nunja möchte da jetzt nicht zu weit ausholen, ist ja auch nicht zweck des Threads. Also erstmal danke für die tipps werde ma schaun was sich so schaffen lässt mit den Seiten mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
also ich würde das wie folgt machen:
Ein Array of Record, wobei im Record alle Werte wie name, Telefonummer usw stehen. Für leere Felder würde ich ein Dummy - Element benutzen. Dann zum Speichern einfach eine Textdatei benutzen, und Die Werte Zeilenweise Abspeichern. BSP in der Textdatei: Zitat:
Denke das ist die einfachste Lösung |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Noch ein Tipp: schau Dir mal Records und typisierte Dateien an, das dürfte einfacher sein, als gleich mit einer DB aufzuwarten.
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Also hihi sry das kichern konnt ich mir nicht verkneifen.
auf Delphi treff wird mein Problem prinzipiell wunderbar und verstädnlich in einfach schritten behandelt. Nun kommt aber ein problem mit dem ich so gar nicht gerechnet hätte. Ich benötige zur Erstellung des Programms die Datenbankoberfläche die sich unter Tools befinden soll. Ich weiss nicht wies bei euch aussieht, aber bei mir ist da nichts derartiges zu finden, was kann ich da machen? mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Welche Delphi-Version hast Du denn?
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Ich habe hier gerade Delphie 7
mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Personal?
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Oh ja sry Personal hatt ich ganz vergessen
mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Könnt Ihr das Thema DB mal ad acta legen? Ich finde, das ist hier vollkommen überdimensioniert (und zwar in allen Belangen).
[edit] Mein Ottografie ( :) ) ist nach einigen Bierchen nicht mehr die Sicherste :oops: [/edit] |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Dann hast Du Pech gehabt. Die Personal bietet keine Unterstützung für Datenbanken.
Schau Dir mal Turbo Delphi Explorer an, die ist kostenlos und bietet auch Unterstützung für Datenbanken an. Jedoch kannst Du keine Drittkomponenten installieren, aber Du hast schon über 200 dabei, die reichen Dicke. ![]() Jedoch solltest Du, wie DeddyH schon erwähnte, nicht gleich auf Datenbanken aufsetzen, typisierte Dateien bieten sich hier "genau so gut" an. [edit] Detlef, sauf nicht so viel :tongue: [/edit] |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Aber wieso ad acta? Das Beispiel was ich gefunden habe ist ja nunmal mit DB und verständlicher bekomm ich es so schnell sicher nicht erklärt.
Zwischendurch übrigens nochma danke für die liebe und schnelle Hilfe und das zu so unchristlicher zeit. Ja ich weiss DB`s sind net allzu einfach aber..nunja wie soll ich sagen. Es ist ne gute Lösung wie ich finde. Also na gut ich überlegt mir das ganze ma und schlaf drüber ma schaun was ich da morgen draus machen kann. Jendenfalls ganz großes dankeschön an euch alle mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Ob Dein Lehrer damit einverstanden ist, wenn Ihr gleich mit Datenbanken loslegt, wage ich zu bezweifeln.
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Liste der Anhänge anzeigen (Anzahl: 1)
Ein Vorschlag...
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Das ist das Problem, was ich hier (und in anderen Foren) immer wieder sehe.
Viele Anfänger, machen sich nicht mal ansatzweise die Mühe, über ihr Problem nachzudenken, es zu analysieren und zu überlegen, was sie überhaupt machen müssen. Es gibt ja ein Forum, wo man einfach mal nachfragen kann und irgendjemand programmiert das dann schon fertig. Klar, für die Hausaufgaben mag das reichen, aber so jemanden will ich dann bitte nicht als Praktikanten bei mir im Büro sitzen haben :-( Was ist so schwer daran? Ein Telefonbuch sollte man aus jedem Handy und auch aus vielen anderen Telefonen kennen. Da gibt es mehrere Einträge, die im einfachsten Fall jeweils aus Name und Nummer bestehen, mittlerweile bei vielen Handies aber auch aus viel viel mehr Einzeldaten. Punkt 1: Ich brauche irgend etwas, um einen zusammengehörigen Satz von Daten (Name, Nummer, Schmachtfaktor) abzuspeichern. Das nennen wir mal einen Datensatz. Punkt 2: Ich werde mehrere solcher Datensätze abspeichern müssen. Hier kann man sich überlegen, ob man eine feste Anzahl vorgeben soll (ja, damals gabs Handies mit genau 20 Speicherplätzen ;-) oder eine variable Anzahl erlauben möchte. Weiter gehts: Was will ich mit meinen Daten denn überhaupt machen? 1) Ich will Telefonnummern (Datensätze) eingeben 2) Ich will Telefonnummern (Datensätze) angezeigt bekommen 3) Ich will nach Telefonnummern suchen können (z.B. anhand des Namens) 4) Ich will die Liste der Telefonnummern abspeichern können, so dass ich sie beim nächsten Programmstart wieder einlesen kann So, nu hab ich schonmal eine Reihe von Anforderungen. Gehen wir zurück zu Punkt 1: Ich brauch "irgendwas", um einen Datensatz zusammenhalten zu können. Das einfachste Konstrukt, was Delphi uns da bietet, ist der Record:
Delphi-Quellcode:
Wir werden später sehen, dass der einfachste Weg nicht immer der beste ist.
TEintrag = record
Name: String; Nummer: String; end; Um mehrere Einträge innerhalb des Programms verwalten zu können, brauche ich "irgendwas", um mehrere Records zusammenzufassen. Das einfachste Konstrukt, was Delphi uns da bietet, ist das Array:
Delphi-Quellcode:
Wir werden später sehen, ....
TTelefonbuch = array[1..20] of TEintrag;
Jetzt habe ich hier die Variante mit fester Anzahl von Einträgen. Unschön. Es gibt ein sogenanntes variables Array, dessen Länge ich später (also während das Programm läuft) auch noch verändern kann:
Delphi-Quellcode:
Leider ist dieses Konstrukt sehr unschön, wenn man viele Einträge hat und sie sich Anzahl immer mal wieder verändert: Delphi muss dann immer einen ganz neuen Speicherbereich anfordern (Ja, es gibt Ausnahmefälle) und dann alles umkopieren.
type
TTelefonbuch = array of TEintrag; var Telefonbuch: TTelefonbuch; begin SetLength(Telefonbuch, 20); ... Was gibts denn noch in der Trickkiste? Eine Liste! Die ist variabel in der Anzahl Einträge, ich kann die Einträge relativ einfach umsortieren, klingt perfekt. Aber in einer Liste speicher ich keine Records, sondern Objekte. Was ist der unterschied? Nun, praktisch gesprochen ist ein Objekt fast das gleiche wie ein Record, ich kann nur noch ein bißchen mehr damit machen:
Delphi-Quellcode:
(Exkurs TObjectList: Es gibt auch eine TList. Die hier verwendete TObjectList hat den Vorteil, dass man sich um das Aufräumen des Speichers nicht kümmern muss. Man sollte also immer die TObjectList anstatt der TList benutzen. Hierfür muss man in die oberste "uses"-Liste die Unit "contnrs" aufnehmen.)
type
TEintrag = class(TObject) Name: String; Nummer: String; end; TTelefonbuch = TObjectList; var Telefonbuch: TTelefonbuch; begin Telefonbuch := TTelefonbuch.Create(True); ... So, nu sind wir mit unseren Überlegungen doch schon ein ganzes Stück vorran gekommen. Den Rest jetzt noch eben fix selber zu machen, dürfte trivial sein, nicht wahr? Gerade wenn ihr in einer Gruppe zusammen arbeitet, dann kann man doch mal zusammen sowas wie ein Brainstorming machen und die Ideen zusammentragen. So, und wenn dann noch Implementierungsfragen sind ("hm, ich hab hier eine Datenstruktur, die ich in einer TObjectList abspeicher. Wie kann ich die möglichst einfach auf Festplatte speichern und wieder einlesen"), dann kann man immer noch im Forum fragen und dann kann man die (wahrscheinlich zahlreichen) Antworten auch wirklich verstehen. Sorry. Musste mal raus. Gruß, SirTwist |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Das bedingt aber, das man sowas wie Records, Arrays etc. in Delphi schon kennt.
Prinzipiell geb ich Dir ja recht, aber wenn man wirklich von einem Lehrer eine solche Aufgabe bekommt, der selber grad erst mit Delphi anfängt (eines der größten Probleme bei uns in den Schulen), dann kann man solches Basis-Knowhow leider noch nicht vorrausetzen. |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Verstehe nicht ganz, weshalb hier gleich Datenbanklösungen vorgeschalgen werden?
Wenn der TE wirklich noch nichts von Delphi weiß (was ich auch irgendwie bezweifle, denn wie soll er sonst ein Projekt programmieren?) kann er es doch komplett vergessen, irgendwas zu programmieren, das über ein Showmessage('Hello World!'); geht... Mein Vorschlag: - Records - TIniFile Dürfte wohl das Einfachste sein, oder?? |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Zur Not in die Barrikaden gehen und streiken. Wenn euer Lehrer wirklich kein Schimmer von Delphi hat, darf er das dann überhaupt? Ggf. mal beim Rektor nachfragen. :mrgreen:
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Also kurz zur Klärung: Sich beim Schulleiter zu beschweren bringt bei uns absolut gar nichts. Ja ich weiss jetz denkt der ein oder andere sicherlich: Hä sonn quatsch ihr habts anscheinend nur noch nicht versucht....
Doch haben wir, aber unser Schulleiter ist...sehr entscheidungsunfreudig. Sicherlich es gibt viele Möglichkeiten, aber von denen amchen wir aus gutem Grund nicht gebrauch, denn der Lehrer kann ja wenn mans genau nimmt nichts dafür, dass er nichts großes mit delphi anfangen kann. Zudem ein beispiel: So liebe Schüler ihr habt eine Aufgabe ich habe heute keinerlei Zeit für euch ich muss noch dieses oder jenes erledigen. Ja gut haben wir verstädnis für(teilweise) und arbeiten halt so gut es geht selbstständig. Er selbst kann ganz sicher keines dieser Projekte selbst erledigen, aber der berühmte Satz aller Lehrer unserer Schule zu sowas: Ich brauch das auch nicht können, ich habe mein abitur schon ihr wollt es haben also strengt euch an. Was soll man da als Schüler machen? Wir wollen keinen lehrer um seine Arbeit bringen, denn ansonsten ist er ja eigentlich Kompetent. Ich bin keinem böse der das nicht verteht und ich hoffe ihr seid mir auch nicht böse wegen diesem thread, allerdings können wir wirklich nichts großartiges mit Delphi anfangen-es fehlen die Vorraussetzungen. Das mit den fertigen Programmen ist sehr nett gewesen und bringt uns sicherlich vorran, aber ein Endresultat ist das für uns nicht, wir wollen es ja auch verstehen und wir müssen es, aus der aufgabe herraus, auch den anderen erklären können, welche stück quelltext für was gut ist. mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Das mit dem Lehrer muss man aber auch verstehen.
Jedenfalls hier bei uns in Thüringen gibt es erst seit letztem Jahr Delphi im Leerplan, davor nur Oberon, und das ist ja schon ein gewaltiger Unterschied. Lehrer müssen das ganze ja auch erstmal lernen. |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Moin Zusammen,
es spricht ja nichts dagegen, sich über Schulpolitik auszutauschen, aber dann bitte in "Klatsch & Tratsch". Danke. |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Vielleicht sollte man erstmal die Aufgabenstellung konkretisieren: was soll das Programm können und was nicht? Wenn ich von Tuten und Blasen keine Ahnung habe, suche ich normalerweise erstmal nach einfachen, d.h. für mich nachvollziehbaren Lösungen. In diesem Fall könnte man z.B. eine einfache Textdatei verwenden, auch wenn einige hier die Nase rümpfen werden. Solange keine Sortierung o.ä. ins Spiel kommt, ist diese mittels einer TStringList IMO recht einfach zu handhaben (LoadFromFile, SaveToFile etwa werden ja gleich "frei Haus" mitgeliefert). Ein kleines minimales Beispiel:
Delphi-Quellcode:
Nun muss man sich nur noch Gedanken über die Darstellung machen (ListView, StringGrid, ListBox). Versucht es mal auf diesem Wege, wenn Ihr nicht weiterkommt, stehen wir gerne zur Verfügung.
sList := TStringList.Create;
try sList.LoadFromFile(Dateiname); for i := 0 to sList.Count - 1 do case i mod 3 of 0: Verarbeite_Name(sList[i]); //Name 1: Verarbeite_Vorname(sList[i]); //Vorname 2: Verarbeite_TelefonNr(sList[i]); //Telefon end; finally sList.Free; end; |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Also ganz großes Danke an alle die hier geschrieben und geholfen haben.
Wir haben jetzt ein eigenes Projekt sozusagen geschrieben. Leider komm ichz erst am Dienstag wieder in info raum rein sodass ich euch den Quelltext dann zur Verfügung stellen werde, wir haben nämlich noch das Problem des Ausdruckens und des Sortierens von A-Z bzw Z-A. ansonsten hat das Programm die Funktion des: Eingebens/Speicherns/Ladens von Telefondaten(Name/Vorname/Stadt/Straße/Postleitzahl/Telefonnmr/Mobilnummer) Suchen innerhalb der Liste, Löschen der gesammten Liste oder ändern einzelner Einträge/Löschen einzelner einträge. wie gesagt nur das sortieren wissen wir nicht wie wir es hinbekommen sollen. mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Dazu kann man nur dann Genaueres sagen, wenn man weiß, in welcher Form die Daten vorliegen (Record, Strings, etc.).
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Jaja das weiss ich :) wollt nur ma ne zwischeninfo geben damit ich hier nich undankbar erscheine.
mfg. maker |
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Das ist ja in Ordnung. Zur Sortierung würde ich Euch den Bubblesort empfehlen, der ist zwar langsam, aber einfach nachzuvollziehen. Tipp: Sortieralgos sind bei Wikipedia recht detailliert beschrieben.
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
blablabla danke für´s programm kann ich gebrauchen^^
|
Re: Telefonbuch-Schuleprojekt und wir sind hilflos
Zitat:
![]() Und ![]() :-D [edit]Achya: die "Standard"-Bubblesort-Implementation benötigt bei bereits sortieren Listen ebenfalls n² Durchläufe, während Insertionsort optimal mit n arbeitet.[/edit] (*Wieder mal meinen Senf dazugegeben und nun die klappe halt*) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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