Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Postleitzahlen auswerten (https://www.delphipraxis.net/49661-postleitzahlen-auswerten.html)

kingflo 14. Jul 2005 08:29


Postleitzahlen auswerten
 
Hallo wir möchten ganz gerne Postleitzahlen der Kunden auswerten. Die Software brauch auch nur zwei edit felder mit anzahl der karten und eines für die PLZ. So und dann sollen die eingaben natürlich gespeichert werden, und ausgewertet werden in dem man sehen kann, wie viele Kartenm für welchen PLZ bereich verkauft wurden.

Jetzt die Frage.....
Hat sowas von euch jemand schon mal gemacht? Denn am liebsten wäre es mir keine Datenbank zu benutzen, da ich bei einer Datenbank auch eine Installation bräcute, da die Rechner auf derern das laufen soll aber immer wechseln können, hätte ich es lieber, die Daten in einere ini zu speichern.

Wäre nett wenn mir da jemand ein paar tipps geben könnte, wie sich das am schnellsten und leichtesten erledigen lässt. Und wie man das am bessten Speichert.

danke im voraus

mfg Flo

Luckie 14. Jul 2005 08:41

Re: Postleitzahlen auswerten
 
Mit einer INi-Datei wirst du nicht glücklich wwerden, da sie ab einer bestimmten Zeilenzahl arge Performanceeinbussen hat. Nimm entweder typisierte Dateien oder wenn es was modernes sein muss XML Dateien.

Als Struktur musst du dir dann eben was ausdenken. Ohne lange nach gedacht zu haben:
Delphi-Quellcode:
type
  Tfoo = packed record
    Kartenname: String;
    PLZ: Integer;
    Count: Cardinal;
  end;

var
  bar: array of Tfoo;

[..]

  setlenght(bar, AnzPostleitzahlen];
  bar[0].Kartenname := Statdplan Kassel;
  bar[0].PLZ := 34125;
  bar[0].Count := 42;
Und dann eben irgend wie abspeichern.

Jasocul 14. Jul 2005 08:44

Re: Postleitzahlen auswerten
 
Und wo bekommst du die Daten her, die du auswerten sollst?
I.d.R. kommen solche Daten aus einer Datenbank. Die Auswertungen kannst du sicherlich in eine Excel-Tabelle schieben.
Aber du benötigst halt eine Datenquelle. Das können natürlich auch CSV-Dateien o.ä. sein. Also nicht zwingend eine DB.

Luciano 14. Jul 2005 08:44

Re: Postleitzahlen auswerten
 
Hi,

es gibt auch Datenbanken, bei denen keine "Installation" nötig ist! Darüber kann man hier einiges finden. In einer INI würde ich das nicht speichern. Vielleicht noch in einem Textfile aber eine kleine DB würde sich da glaube ich eher anbieten...

Greets

P.S. Das war wohl nicht wirklich ein Lösungsvorschlag für dein Problem :gruebel:

Sharky 14. Jul 2005 08:45

Re: Postleitzahlen auswerten
 
Zitat:

Zitat von kingflo
... da ich bei einer Datenbank auch eine Installation bräcute, ...

Hai Flo,

es gibt doch auch Datenbanklösungen die ohne installationen auf dem Rechner auskommen.
Ich selber verwende für solche Dinge (wenn sich die Datenmenge in grenzen hält) immer gerne die Absolute Database.
Da braucht überhaupt nichts installiert werden. Noch nichteinmal eine DLL ist notwendig.

marabu 14. Jul 2005 08:48

Re: Postleitzahlen auswerten
 
Hallo Florian,

bei der Natur deiner Daten würde ich ein log file schreiben, eine Textdatei im CSV-Format. Die Auswertung kann ein zweites Programm machen, das dann auch mehrere solcher log files aggregieren kann. Alles andere halte ich für over kill.

Grüße vom marabu

kingflo 14. Jul 2005 10:32

Re: Postleitzahlen auswerten
 
Also um auf einige Fragen einzugehen.

Die Daten werden bei uns an der Kasse eingegeben, d.H der Kunde wird wie bei media Markt nach der plz gefragt und dann gibt man die Anzahl der Karten ein, die der Kunde gekauft hat. und wenn man dann auf OK klickt soll in der gespeicherten Datei geguckt werden ob die PLZ schon existiert
wenn ja dann sollen die Anzahl der Karten, auf die schon vorhandene Anzahl (die ja schon jemand gekauft hatte) hinzugefügt werden. Wenn die PLZ noch nicht existiert, dann soll die PLZ mit der Anzahl der Karten hinzugefügt werden.


Also soll die Datei etwa so aussehen
Code:
22177   4
22303   6
usw usw
vobei die Hintere Zahl dann für die Anzahl der Karten stehen soll, deshalb wollte ich es eigentlich in einer DB speichern, damit man leicht prüfen kann ob die PLZ schon existiert und die Dazugehörige Tabelle mit der Anzahl der Karten ausgelesen und editiert werden kann.

Ein großes problem, dass ich habe ist unter anderen, dass ich in Delphi bis jetzt ausschließen nur mit Paradox Datenbanken und aliasen gearbeitet habe. Und um einen Alias dann leicht anlegen zu können benötigt man am bessten eine Installation.

Jasocul 14. Jul 2005 10:42

Re: Postleitzahlen auswerten
 
Ich gehe mal davon aus, dass die Leute aus der Region kommen. Das hält die Zahl der PLZs schon sehr in Grenzen.
Wenn du es einfach haben willst, nimmst du INI-Dateien. Dort verwendest du die PLZ als Schlüssel. Bevor du hochzählst liest du den Schlüssel ein (ReadInteger). Dabei kannst du als Vorgabewert die "0" angeben. Steht schon was unter der PLZ wird die Vorgabe ignoriert. Das unterstützt die genannte Funktion auch so. Danach zählst du einen darauf und speicherst das ab.
Soll das ganze mehrplatzfähig sein, geht das so natürlich nicht. Zuminidest nicht mit einer zentralen INI-Datei.
Da solltest du für jeden Platz eine separate INI-Datei nehmen und einen Tagesabgleich durchführen.
Mit einer DB geht das wohl einfacher, aber wenn du damit wenig Erfahrung hast...

kingflo 14. Jul 2005 11:06

Re: Postleitzahlen auswerten
 
könntest du mir eventuell ein kleines Code beispiel geben?

Jasocul 14. Jul 2005 11:16

Re: Postleitzahlen auswerten
 
Delphi-Quellcode:
...
uses
  INIFiles; // falls du noch andere Units so einbindest, einfach nur ergänzen.

procedure machwas (aktPLZ : String);
var
  INI : TINIFile;
  Anzahl : Integer;
begin
  INI := TINIFile.Create('INI-Datei'); // den gewünschten Dateinamen eintragen
  Anzahl := INI.ReadInteger('Postleitzahlen', aktPLZ, 0);
  Inc(Anzahl);
  INI.WriteInteger('Postleitzahlen', aktPLZ, Anzahl);
  INI.Free;
end;
Mal ausm Kopp hingetippt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.
Seite 1 von 2  1 2      

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