Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei auswerten (https://www.delphipraxis.net/29430-datei-auswerten.html)

motu 10. Sep 2004 07:41

Re: Datei auswerten
 
Wenn man keene Ahnung hat kann det ja jarnischt wern. :wall:

Ich war immer drauf aus, die Datei in ein Array zu werfen und dann zu parsen. Dabei muß ich erst parsen und dann werfen. Naja dazu bin ick hier.

Ich probiers mal mit nem Codeschnipsel, den ich gefunden habe. Wenn ich da was nicht hinkriege, meld ich mich wieder.

Danke an alle die mir Zeit und Geduld opfern.

motu 10. Sep 2004 10:12

Re: Datei auswerten
 
Jetzt hab ich erstmal meine Daten im Array. :-D

Jetzt muß ich meine Spalten überprüfen ich dachte an:
Delphi-Quellcode:
    for i:=0 to m do //m - Zeilenanzahl
      begin
        if (data[17,i] > 10) and (data[18,i] > 10) and (data[19,i] > 10) then
        IrgendEinSpeicher := m;
      end;
So.
Problem 2: Was nehm ich dem am besten für einen Speicher um meine Zeilennummern zu merken?
Problem 3: Wie überprüf' ich, ob die Zeilennummern ein zusammenhängende Zahlenfolge sind?
:gruebel:


edit: einige Sachen schon selbst rausgefunden

Wär es nicht auch gleich möglich, wenn ich die Zeilenummer habe, Werte der Spalten in eine Liste zu speichern? Wenn sie Zeilennummer springt, wird eine neue Liste begonnen. Meine Liste kann ich dann an meine Funktionen übergeben

Golze 10. Sep 2004 10:29

Re: Datei auswerten
 
Hallo Motu,
ich möchte die etwas korrigieren
Zitat:

Du hast mir ja Deine Dienste angeboten
Ich hatte dir meine Hilfe bei Problemen angeboten. Ich kann nicht dir dein Programm schreiben. Aber ich kann dir Hilfen, daß du deine Aufgabe lösen kannst. Wenn du so willst, sehe mich als Coach an.

Zum Fachlichen deines Beitrags: (in den vorherigen Beträgen wurde dazu bereits Source Code beschrieben)
1) Öffne die Datei mit AssignFile(filevar, dateiname) und Reset(filevar).
2) Lese die Daten mit Readln(filevar, stringbuffer) ein.
3) Lese jede Spalte mit seinem Feld ein und konvertieren die Stringabbildungen in Real-Zahlen.
4) Speichere die Zahlen jeder Zeile in ein eigenes Objekt mit dem Namen "TMessdaten". Das Objekt enthält als Objekteigenschaften und damit lokale Variablen die jeweiligen Spalten deiner Datei als Realzahlen.
Delphi-Quellcode:
  TMessdaten = class(object)
  private
     ...F_spaltennamen: Real;
  public
    property ...spaltennamen: Real
      read F_spaltennamen write F_spaltennamen
  end;
5) Speichere das Objekt mit dem TList-Objekt der VCL in einer internen Liste ab.
Delphi-Quellcode:
  FList := TList.Create;
  repeat
    ...zeile aus datei einlesen...
    FMessdatenzeile := TMessagen.Create;
    FList.Add(FMessdatenzeile);
    FMessdatenzeile.spaltenname := StringInZahl(HoleZahlEinerSpalte(eingeleseneZeile));
  until EOF(filevar);

  ...nun daten mit der internen darstellung beliebig bearbeiten...
  for i := 0 to FList.Count-1 do
  begin
   TMessdaten(FList.Item[i]).spaltenname .... berechnen, verrechnen etc.
   ....

  end;
6) Am Ende der Datei, schließe die Datei mit CloseFile(filevar).

Nun kannst du die Daten in deiner internen Liste, die pro Eintrag nun deine Zahlen einer Zeile enthält schnell und einfach bearbeiten.

Grüße Kay

motu 10. Sep 2004 11:00

Re: Datei auswerten
 
Also mein Array ist voll, die Datei auch schon wieder zu.
nun habe ich folgenden Idee:

Delphi-Quellcode:
  if (data[17,i]>10) and (data[18,i]>10) and (data[19,i]>10) then
    if saveint=i-1 then
//  jeden werte einer spalte dieser Zeil in eine eigene liste
    saveint:=i;

    else
    saveint:=i;
Jetzt besteht das Problem, das die erste Zeile mit Werten nicht beachtet wird und ich hab grad keine Idee, wie ich, sobald ein neuer Wertblock anfängt, eine neue Liste beginne. Ich könnte ja in jedem Else-Fall den Listenindikator um eins erhöhen. dann haben alle zusammenhörenden Liste den gleich Indikator. Es ist doch bestimmt möglich leere Liste einfach wegfallen zulassen und die bestehenden einfach neu durchzunummerieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Seite 3 von 3     123   

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