Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
Artikelstatistik lädt File nicht korrekt ein?
Ein Delphi (Win32)-Thema von Hellraizer.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi
Seite 1 von 1   [ 8 Beiträge ]  
 
 Autor 
 Nachricht 
 
Hellraizer #1|Beitrag #984452Verfasst am: 06.01.2009, 15:54      Titel: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Mitglied
Alter: 19
Status: offline
Beiträge: 28
angemeldet: 18.12.2008
Wohnort: NRW
Delphi 2007 Professional

Sprache: Delphi (Win32)

Hallo.
Ich habe hier ein Programm, das aus einer .txt Datei, die mit bestimmten Format erstellt wird, Daten auslesen
und etwas errechnen und dann in einer anderen .txt datei abspeichern soll.
Allerdings lädt er die .txt Datei scheinbar nciht korrekt ein. Vielfaches herumbasteln führte zu keiner Lösung..

hier der Code: im Anhang alles was dazu gehört.

Delphi-Quellcode: zusammenfalten | markieren
unit artikel1;

interface

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

type
  TFStatistik = class(TForm)
    LArtikelnummer: TLabel;
    LMenge: TLabel;
    LUmsatz: TLabel;
    EArtikelnummer: TEdit;
    EMenge: TEdit;
    EUmsatz: TEdit;
    BLaden: TButton;
    BAuswerten: TButton;
    BBeenden: TButton;
    ODLaden: TOpenDialog;
    SDSpeichern: TSaveDialog;
    BSpeichern: TButton;
    procedure FormCreate(Sender: TObject);
    procedure BLadenClick(Sender: TObject);
    procedure BAuswertenClick(Sender: TObject);
    procedure BSpeichernClick(Sender: TObject);
    procedure BBeendenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FStatistik: TFStatistik;

implementation

{$R *.DFM}

const max = 100;

type tbuchungssatz = record
                      datum: string [12];
                      artikelnr, menge: integer;
                      preis: real;
                     end;

var buchungssatz: array [1..max] of tbuchungssatz;                               //"Array of Record"
    anzahl, gesucht: integer;                                                    //Variablen für die Anzahl der eingelesenen Datensätze und die gesuchte Artikelnummer

//Prozedur zum Einlesen der Buchungssätze aus der Textdatei
procedure einlesen (dateiname: string);
var datei: textfile;                                                             //Dateivariable
begin
anzahl:=0;                                                                      //Initilaisierung von anzahl
assignfile (datei, dateiname);                                                  //Verbindung von logischem und physischem Dateinamen
{$I-}                                                                           //Ausschalten der Ein-/Ausgabeprüfung
reset (datei);                                                                  //Datei öffnen
{$I+}                                                                           //Einschalten der Ein-/Ausgabeprüfung
if ioresult = 0                                                                 //Hat alles geklappt?
    then                                                                         //Wenn ja:
     begin
      if not eof (datei) then readln (datei);                                    //1. Zeile überlesen
      if not eof (datei) then readln (datei);                                    //2. Zeile überlesen
      while not eof (datei) do                                                   //Solange Dateiende nicht erreicht...
       begin
        anzahl:=anzahl+1;                                                        //Erhöhung der Anzahl der Datensätze
        with buchungssatz [anzahl] do
         readln (datei, datum, artikelnr, menge, preis);                         //Dateizeile in die Recordkomponenten des anzahl-ten Datensatzes einlesen
       end;
      closefile (datei);                                                         //Datei schließen
     end
    else showmessage ('Fehler beim Öffnen der Datei!');                          //Wenn nein: Meldung ausgeben
end;

//Prozedur zum Speichern der Auswertung in einer Textdatei
procedure speichern (dateiname: string);
var datei: textfile;                                                             //Dateivariable
    i: integer;
begin
assignfile (datei, dateiname);                                                  //Verbindung von logischem und physischem Dateinamen
{$I-}                                                                           //Ausschalten der Ein-/Ausgabeprüfung
rewrite (datei);                                                                //Datei öffnen
{$I+}                                                                           //Einschalten der Ein-/Ausgabeprüfung
if ioresult = 0                                                                 //Hat alles geklappt?
    then                                                                         //Wenn ja:
     begin
      writeln (datei, 'Artikelnummer: ', gesucht);                               //Titelzeilen schreiben
      writeln (datei);
      writeln (datei, 'Datum            Menge       Preis         Umsatz');
      writeln (datei, '-------------------------------------------------');
      for i:=1 to anzahl do                                                      //Buchungssätze durchlaufen
       with buchungssatz[i] do
        if artikelnr=gesucht then                                                //Wenn Artikelnummer des i-ten Buchungssatzes der gesuchten Artikelnummer entspricht
         writeln (datei, datum, formatfloat ('#,##0', menge):10,                 //i-ten Buchungssatz in Datei ausgeben
                  formatfloat ('#,##0.00', preis):12,
                  formatfloat ('#,##0.00', menge*preis):15);
      closefile (datei);                                                         //Datei schließen
     end
    else showmessage ('Statistik kann nicht gespeichert werden!');               //Datei konnte nicht erstellt werden: Meldung ausgeben
end;

//Wenn das Formular erzeugt wird...
procedure TFStatistik.FormCreate(Sender: TObject);
begin
anzahl:=0;                                                                      //anzahl initialisieren
gesucht:=0;                                                                     //gesucht initialisieren
end;

//Wenn man auf Laden klickt...
procedure TFStatistik.BLadenClick(Sender: TObject);
begin
if odladen.execute then einlesen (odladen.filename);                            //Wenn im Öffnen-Dialog Öffnen angeklickt wurde: Daten einlesen
eartikelnummer.setfocus;                                                        //Cursor ins Edit EArtikelnummer setzen
end;

//Wenn man auf Auswerten klickt...
procedure TFStatistik.BAuswertenClick(Sender: TObject);
var gesamtmenge, i: integer;
    gesamtumsatz: real;
begin
gesucht:=strtointdef (eartikelnummer.text, 0);                                  //Auslesen des Edits EArtikelnummer
gesamtmenge:=0;                                                                 //gesamtmenge initialisieren
gesamtumsatz:=0;                                                                //gesamtumsatz initialisieren
for i:=1 to anzahl do                                                           //Eingelesene Buchungssätze durchlaufen
  with buchungssatz[i] do
   if artikelnr = gesucht then                                                   //Wenn Artikelnummer des Buchungssatzes mit eingegebener Artikelnummer übereinstimmt...
      begin
       gesamtmenge:=gesamtmenge+menge;                                           //Menge aggregieren
       gesamtumsatz:=gesamtumsatz+menge*preis;                                   //Umsatz aggregieren
      end;
emenge.text:=formatfloat ('#,##0', gesamtmenge);                                //Umgesetzte Menge ausgeben
eumsatz.text:=formatfloat ('#,##0.00', gesamtumsatz);                           //Umsatz ausgeben
eartikelnummer.setfocus;                                                        //Cursor ins Edit EArtikelnummer setzen
end;

//Wenn man auf Speichern klickt...
procedure TFStatistik.BSpeichernClick(Sender: TObject);
begin
if gesucht > 0                                                                  //Wenn Auswertung mit gültiger Artikelnummer durchgeführt wurde...
    then
     begin
      if sdspeichern.execute then speichern (sdspeichern.filename);              //Wenn im Speichern-Dialog Speichern angeklickt wurde: Statistik speichern
     end
    else                                                                         //Wenn keine Auswertung mit gültiger Artikelnummer durchgeführt wurde...
     begin
      showmessage ('Keine Auswertung vorgenommen!');                             //Fehlermeldung ausgeben
      eartikelnummer.setfocus;                                                   //Cursor ind Edit EArtikelnummer setzen
     end;
end;

//Wenn man auf Beenden klickt...
procedure TFStatistik.BBeendenClick(Sender: TObject);
begin
application.terminate;                                                          //Anwendung beenden
end;

end.

[ An diesen Beitrag wurden eine oder mehrere Dateien angehängt. Zum Herunterladen bitte anmelden. ]
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
mkinzler #2|Beitrag #984454Verfasst am: 06.01.2009, 15:56      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Moderator
Beiträge: 27.704
angemeldet: 09.12.2005
Wohnort: Heilbronn
Delphi 2010 Professional

Wie äussert sich das nicht korrekt?
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Hellraizer #3|Beitrag #984457Verfasst am: 06.01.2009, 15:58      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Mitglied
Alter: 19
Status: offline
Beiträge: 28
angemeldet: 18.12.2008
Wohnort: NRW
Delphi 2007 Professional

oh vergessen Very Happy

[edit]wenn man den ausrechnen button,TFStatistik.BLadenClick drückt dann wird/bleibt eartikelnummer(edit1) leer, emenge.text(edit2) wird 0 und eumsatz.text(edit3) wird 0,00
sons passiert nix. das lässt sich dann auch nicht speichern.[/edit]

 Zuletzt bearbeitet von Hellraizer am 06.01.2009, 19:07, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Hellraizer #4|Beitrag #984517Verfasst am: 06.01.2009, 17:10      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Mitglied
Alter: 19
Status: offline
Beiträge: 28
angemeldet: 18.12.2008
Wohnort: NRW
Delphi 2007 Professional

keiner eine idee? oder fehlen noch genauere angaben?

MFG Kevin
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
SirThornberry #5|Beitrag #984520Verfasst am: 06.01.2009, 17:12      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Moderator
Alter: 25
Status: offline
Beiträge: 11.339
angemeldet: 23.09.2003
Wohnort: Bockwen
Delphi 2006 Professional

Könntest du bitte das pushen unterlassen? Smile Bist du denn mal Schritt für Schritt das ganze durchgegangen (mit Hilfe des Debuggers und F7 + F8 )?
Ein abschreckender Punkt könnte deine Benennung sein. Wenn jemand Button3 etc. liest ist er nicht so schnell gewillt zu helfen. Denn man erwartet wenn man sich die Arbeit macht dir zu helfen das du dir die Arbeit gemacht hast Variablen etc. zu benennen.

Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's

 Zuletzt bearbeitet von SirThornberry am 06.01.2009, 17:14, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Hellraizer #6|Beitrag #984608Verfasst am: 06.01.2009, 19:26      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
Mitglied
Alter: 19
Status: offline
Beiträge: 28
angemeldet: 18.12.2008
Wohnort: NRW
Delphi 2007 Professional

tut mor leid. hab die oben das mit den variablen geändert.

[edit]
habe das problem selbst gefunden und gelöst. danke für eure zeit =)
[/edit]

MFG Kevin

 Zuletzt bearbeitet von Hellraizer am 06.01.2009, 19:37, insgesamt 1-mal bearbeitet.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Chemiker #7|Beitrag #984626Verfasst am: 06.01.2009, 20:07      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
aktives Mitglied
Alter: 50
Status: offline
Beiträge: 1.238
angemeldet: 14.08.2005
RAD-Studio 2009 Pro

Hallo Hellraizer,

in Deinem Programm werden Funktionen von Textdateien und Typisierte Dateien gemischt.

Tut. für Typisierte Dateien:

Tut. für typisierte Dateien:

Bis bald Chemiker

wer gesund ist hat 1000 wünsche wer krank ist nur einen.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
fkerber #8|Beitrag #984650Verfasst am: 06.01.2009, 20:51      Titel: Re: Artikelstatistik lädt File nicht korrekt ein? Antworten mit Zitat
CodeLib-Manager
Alter: 23
Status: offline
Beiträge: 5.896
angemeldet: 09.07.2003
Wohnort: Saarlouis
Delphi 2007 Professional

Hi!

Hellraizer hat folgendes geschrieben:
[edit]
habe das problem selbst gefunden und gelöst. danke für eure zeit =)
[/edit]


Es wäre trotzdem schön, wenn du uns dann an deiner Lösung teilhaben lassen könntest.
Falls mal jemand ein ähnliches Problem hat, ist er vllt. dankbar deine Lösung zu lesen.


Ciao, Frederic

Die Signatur hat Urlaub...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Sonstige Fragen zu Delphi Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 8 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2010 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen