Autor Beitrag
Kaoro-kun
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: So 20.08.06 01:08 
Hallo Forenmitglieder,
als wir in der Schule die Aufgabe bekamen, mal etwas sinnvolles zu Programmieren, kam mir die Idee, das Programm auszubauen und zu erweitern.
Daraus ist ein relativ Akzeptables Adressbuch entstanden.
Es arbeitet mit 2 untypisierten Dateien, wobei eine die eingegebenen Daten erfasst, und eine andere die Multiuserfähigkeit garantiert.
Beide Dateien sind im System32 Verzeichnis abgelegt. User.dat für die User, und Adressdatenbank mit dem Namen des Users, als txt. Da sie jedoch untypisiert ist, sind Steuerzeichen enthalten...
Nun zu meiner eigentlichen Bitte:
Ich hätte gern Feedback zu dem Projekt und evtl. Verbesserungsvorschläge von euch.
Regards,
Kao

Edit:Nun ist das Projekt so Modifiziert, das Interne Dateien im Anwendungsdaten-Verzeichnis des Aktuellen Users abgelegt werden.
Einloggen, um Attachments anzusehen!
_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)


Zuletzt bearbeitet von Kaoro-kun am So 20.08.06 12:49, insgesamt 2-mal bearbeitet
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: So 20.08.06 03:08 
Was kann ichz jetzt mit der "SuchenUnit.pas" anfangen? Da hste doch bestimmt noch was vergessen. :lol:

MfG
freak

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: So 20.08.06 04:30 
:welcome: Erstmal hallo und herzlich willkommen im DF!
Zu deinem "Programm": also wirklich viel bringen tut das nicht, wenn du einfach nur eine Unit ins Archiv tust!
(Zieh am besten den ganzen Ordner rein, dann is schon alles wichtige dabei - so eben nicht).
Außerdem ist das so wies aussieht die falsche Sparte > Denn wenn der Source bei deinem Programm dabei is gehört das in die Sparte Open-Source


Zuletzt bearbeitet von Danniolo am Di 11.08.09 01:40, insgesamt 1-mal bearbeitet
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: So 20.08.06 07:40 
Guten Morgen,
Also erstmal bedanke Ich mich für die Aufmerksamkeit, da war Ich gestern Nacht wohl ein wenig unaufmerksam...
Nun, Ich las vor dem Post diesen Wichtigen Thread, und hiess es dort nicht, das der Source immer dabei sein muss?

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: So 20.08.06 11:31 
Dateien ins System32 Verzeichnis :shock: Hallo?!? Das werd ich mit Sicherheit nicht testen. Leg die Dateien bitte wo anders ab. Am Besten in den Anwendungsdaten-Ordner.


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: So 20.08.06 11:44 
Inwiefern denn testen? ._.
Zumal die Dateien oben doch genau angegeben sind mit Namen...oder was hast Du da vor?
Traust Du mir tatsächlich zu, Trojaner zu Programmieren? Hast mein Profil wohl noch nicht gelesen. XD
Die Programminternen Dateien habe Ich aus dem Grund nicht im Anwendungsverzeichnis abgelegt, weil es ja durchaus vorkommen kann, das man die .exe auf dem Desktop aufbewahren könnte...das wiederum würde für Unnötige Dateien auf demselben sorgen...zumal Du mit den Internen Dateien als normaler Anwender eh kaum etwas anfangen kannst, da durch die untypisierten Dateien Steuerzeichen für die Enden der Arrayfelder in den Dateien stehen, die man auch nicht einfach so entfernen kann, da das Programm sonst nicht mehr mit ihnen arbeiten kann.
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: So 20.08.06 11:50 
Wahrshceinlich bekommt dein Tool gar keinen Zugriff auf das System32 Verzeichnis, wenn man es nicht als Admin ausführt. Und ins System32 Verzeichnis gehören einfahc keine Dateien von irgendwelchen Programmen. Und mit Anwendungsdaten-Verzeichnis meine Ich C:\Dokumente und Einstellungen\[Username]\Anwendungsdaten\[DeinProgrammName]\. Da gehört das rein und da hast du auch Schreibzugriff... Such ein bisschen im Forum, da sollte es irgendwo eine Funktion geben, die dir diesen Pfad ausspuckt.... Ansonsten gibt es bestimmt was bei den Schweizern.



MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: So 20.08.06 11:54 
Hm stimmt...der Pfad ist mir noch nicht eingefallen...werd Ich gleich ändern und als Update editieren. ^^ Vielen Dank für die Info.
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: So 20.08.06 19:51 
So, nu hab ich's kurz ausprobiert:


  • Mach im Anwendungsdaten-Ordner doch bitte einen Unterordner für dein Programm und schmeiß die Dateien nicht direkt in den Anwendungsdaten-Ordner... Wenn das jedes Programm so machen würde, hätte man schon lang keinen Überblick mehr...
  • Ich kann leere Datensätze anlegen. Warum?
  • In der Suchen-Form kann man ion die ComboBox schreiben
  • verbesser bitte die diversen Schreibfehler
  • wenn ich was ändere, warum wird der Dtaensatz dann aus der Liste gelöscht und ich soll ihn neu hinzufügen (Button-Beschriftung!). Das hat das obskure Ergebnis, dass wenn ich einen Eintrag ändern will, dann aber auf "zurück" gehe, ist der Datensatz weg :shock:
  • Wenn ich einen neuen Datensatz anlege, möchte ich auch mit <ENTER> bestätigen können und mit <ESC> abbrechen (schau dir mal Default und Cancel von den Buttons an, die machen genau das...)
  • Was ist das für eine ProgressBar unten rechts? die sieht komisch aus.. Und was macht die?
  • wieso ist Datensatz hinzufügen ein Button und nicht im Hauptmenü unter Adressen? Da gehört das auf jeden Fall auch hin!


Das ist mir bisher aufgefallen...


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Mo 21.08.06 08:42 
Also, das mit dem Ändern hab Ich bisher nicht anders hinbekommen, leider... :(
Zudem war Ich bei der Umsetzung der Möglichkeit, Datensätze zu Ändern, zu Faul, extra ein Formular zu erstellen, sodass Ich einfach das, zum Hinzufügen nutzte. Lässt sich aber auch noch Ändern. :angel:

Die Möglichkeit leere Datensätze anzulegen hab Ich mir während der Entwicklungszeit gelassen, um zu sehen, ob kleinere Feinheiten im Programm so funzen, wie geplant...wie genau Ich das verhindern kann, obwohl die Möglichkeit bleiben muss, Felder auszulassen, fällt mir im Moment nur Teilweise ein:

Wenn Ich eine If-Abfrage Formuliere, die prüft, ob die Summe der Texte '' ist, müsste Ich doch verhindern können, das leere Datensätze hinzugefügt werden, oder?

An die Sache mit der Kombobox hab Ich gar nicht gedacht. :shock:

Bei den Edits, mit dem Enter und dem Esc - nach dieser Möglichkeit hab Ich mir die Augen Blindgesucht, aber beim Lesen nichts gefunden, was mir hätte helfen können, dein Tipp hat mir da nachgeholfen, vielen Dank.
[Edit]: Je nachdem, welchem Button Ich das Default True setze, trägt er sofort ein, oder er schliesst's Fenster...wie bitte mach Ich, das er im Edit weiterspringt?! :autsch:

Der Progressbar dient der Optischen Unterstützung...da Ich durch bisher mangelnde Kenntnisse die Datenbankgröße auf 1000 Datensätze eingeschränkt hab, wird die Fülle durch den Progressbar angezeigt. Label und ProgressBar zeigen so Anschaulicher, wieviel Datensätze man hat. Auch das war ein Nebeneffekt meiner Kontrollen bei der Entwicklung...

Den HinzufügenButton nur im Formular fand Ich angenehmer, da man meist eher die Maus bewegt, wenn das Programm schon Offen ist, aber der Vorschlag mit dem Hautpmenü wird kein Problem. :)

[Edit]: Als Ich versucht hab, deine gewünschten Verzeichnisänderungen durchzuführen, erhielt Ich am Anfang die Meldung "Ungültiger Dateiname" und den E/A-Fehler 102. Die Fehler waren mir bekannt, aber Ich wusste nicht warum, da Ich davon ausging, das Delphi nicht vorhandene Ordner selbst erstellt.
Tut es aber nicht. :autsch: Wie veranlasse Ich Delphi, Ordner zu erstellen?
mit Dank für's Feedback,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Mo 21.08.06 13:01 
Also...
Das mit dem Verzeichnis, mit der ComboBox, mit den Menü, und der Möglichkeit leere Datensätze zu schreiben ist geklärt.
Fehlen noch die Editfelder mit Enter und das mit dem Ändern... ._.
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Mo 21.08.06 18:05 
Also JETZ kam was Geiles...
Ich wollte also dieses Datensatz ändern machen...
Und nehm dazu über ALT+F12 den Inhalt meiner Datensatz hinzufügen Form und Kopier das in das neue Formular...
Nachdem Ich erstma das Gehacke mit den ganzen Namen beendet hatte, damit es überhaupt startet, das Programm, will Ich diese Kopierte Formular aufrufen...
Und bekomme eine Fehlermeldung mit ner Zugriffsverletzung irgendwas bla bla... ._.
WAS mach Ich FALSCH? Und außerdem muss Ich noch die Sache mitm genauen Ändern klären und wie Ich das nu mit den Edits mach, das es da weiter geht...wäre Nett, wenn mir da jemand helfen könnte...
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 22.08.06 16:18 
Um das herauszufinden brauchen wir entweder deinen Source oder ich muss mal wieder meine Kristallkugel polieren.. :gruebel: bin aber zu faul dafür. Ausserdem würde das in einen neuen Post gehören, nicht in Freeware. Ausserdem solltest du den Editknopf benutzen ^^ Ok genug ausserdems. ich werd mal eben dein Programm mir anschaun tun (Meine deutschlehrerin wird mich töten :D ) und mein Urteil dazu abgeben tun. Nach dem testen tu ich den Post hier mal editieren.
Ausserdem hast du ja den Source in deinem Archiv - Dann gehörts mehr in Open Source. Was du gemeint hast:
user profile iconTino:
Die Programm- bzw. Komponenten-Sourcen müssen mitgeliefert werden*
* = Nur bei Open-Source-Projekte

In den Sparten Freeware und Opensource sind die Announcements die selben - der Stern gilt eben nur für OpenSource.
Edit: Ganz nett soweit, nur warum zum Teufel finde ich den Benutzernamen Löschen Button im Readme?? Is das da nicht ein BISSCHEN fehl am platze? Ausserdem würd ich einfach alle Buttons die du da so hast ins TMainMenu machen... Ist immer nett, wenn man etwas auf 2 verschiedene Arten machen kann :D
btw mir ist ne verbesserung für mein Programm eingefallen... Ich werd meine Daten mal demnächst mit ner typisierten Datei speichern - ist a) Platzsparender und b) Speicherplatzmäßig unbegrenzt.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Di 22.08.06 17:07 
UNbegrenzt ist es nicht, mein unbekannter Freund...
Du scheinst zu Vergessen, das Du bei untypisierten Dateien ein Array brauchst, das Du Begrenzen MUSST. ;)
Aber die Begrenzung selbst ist ein wenig Breiter als bei Variablen... +g+
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 22.08.06 20:03 
...Äh? Was genau meinst du ... ? Ich kann zwar keine Strings speichern, wohl aber String[500] o.ä. ...
Ich weis nich wies dir geht, aber ich sehe kein Ende, ab dem ich mit write(f, einRecord); keine neuen Datensätze mehr anlegen kann ... :(
Ach und:
user profile iconJayEff hat folgendes geschrieben:
Ich werd meine Daten mal demnächst mit ner typisierten Datei speichern.

Wer sagt was von untypisiert? oO

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 22.08.06 21:08 
Ist aber schon nicht schlecht für zwei Programme die kein Mensch braucht sich dermaßen in die Ha.... naja Ihr wisst schon was Ich mein..
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Di 22.08.06 23:30 
Ehrlich gesagt? Nein, weiss Ich nicht.
Und JayEff, sry, hatte mich wohl Verlesen...Ich jedenfalls schreib ja in Untypisierte, da bin Ich ja theoretisch gezwungen, die Arrays zu begrenzen...
Regards,
Kao

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 22.08.06 23:51 
user profile iconBlackheart666 hat folgendes geschrieben:
Ist aber schon nicht schlecht für zwei Programme die kein Mensch braucht sich dermaßen in die Ha.... naja Ihr wisst schon was Ich mein..

Ähem - ICH brauche mein Programm. Darum hab ichs geschrieben (hälst du mich - tut mir leid wenn mir kein besseres Wort einfällt - für blöd?). Wie auch in der Beschreibung meines Threads angegeben, habe ich das Programm genau auf meine Bedürfnisse angepasst und vollständig zur Erweiterung freigegeben.
Wir haben uns nicht in die Haare gekriegt oder was auch immer du sagen wolltest - wir haben lediglich über die Effizienz diverser Programmierstile bzw. Datenverarbeitungsarten gesprochen, tut mir Leid, wenn das nicht zu dir durchgedrungen ist.
Falls du fachlich passende Kommentare zum Thema verfassen willst, schreib das bitte hier, ansonsten würde sich das DF Team glaube ich am ehesten über PNs freuen. Danke.

@ Kaoro-kun:
ich hab keine Ahnung von untypisierten Dateien. Ich glaub ich sollte mir deinen Source doch mal genauer ansehen ;) Mal sehn was die so bringen...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Kaoro-kun Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

Win XP
Delphi 7, Pascal
BeitragVerfasst: Mi 23.08.06 00:19 
Untypisierte Dateien haben ihre Vor- und Nachteile...Du musst im Grunde einen eigenen Typen erstellen.
Sprich, Du wählst für jedes deiner Datenteile einen Namen aus. Wie Ich bei mir eben Telefonnummer usw...
Hat den nachteil, Du musst die einzelnen Felder einschränken. Sprich, für Namen bspw. 10 Zeichen.
Da sie untypisiert - weil Du sie ja erst festgelegt hast - sind, brauchen sie ein Array.
Heisst, eine Variable mit Platz für jedes deiner Felder.
Das - finde Ich - Komplizierte dabei ist, Du musst, wenn Du später die Daten in das Array liest, jedes einzelne Feld ansprechen, dazu unten ein Beispiel. Willst Du nun aber in die Datei speichern, sprichst Du nicht mehr die einzelnen Felder an, sondern gleich den ganzen Satz...klingt Komplex, hat aber auch so seine Vorteile, weil man Übersicht behält, und es so ausserdem gezielt ausgeben kann. +g+

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type meintyp=record
 meinfeld:string[10];
 deinfeld:integer[10];
 end;

var a:array [1..10of meintyp;
    i:integer;
    f:file of meintyp;   
Begin
 a[1].meinfeld:=edit1.text;
 a[1].deinfeld:=StrToInt(edit2.text);

geht auch mit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 with a[1do
 Begin
  meinfeld:=edit1.text;
  deinfeld:=StrToInt(edit2.text);
 end;
 reset(f);
 for i:=0 to filesize(f)-1 do
 write(f,a[i]);
 closefile(f);

_________________
Wissen ist Macht. Nichts Wissen macht nichts. Aber nichts zu Wissen, hat nichts mit Intelligenz zu tun. ;)
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 23.08.06 03:13 
Sorry dich zu korrigieren, aber das IST eine typisierte datei.
Du hast eine Datei (file) vom Typ MeinTyp (of meintyp), und du kannst problemlos unendlich viele Datensätze hineinschreiben:
write(f, datensatz); kannst du ja so oft ausführen, wie du willst, bevor du die datei mit CloseFile schließt. Ausserdem kannst du alle Datensätze lesen mit:
ausblenden Delphi-Quelltext
1:
for i:=0 to FileSize(f)-1 do read(f, meintypArray[i]);					

Die einzige Beschränkung stellt MaxInt dar. du kannst nur MaxInt an Datensätzen speichern, da die For-Schleife nen Integer will, glaub ich.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.