![]() |
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. |
Re: Datei auswerten
Jetzt hab ich erstmal meine Daten im Array. :-D
Jetzt muß ich meine Spalten überprüfen ich dachte an:
Delphi-Quellcode:
So.
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; 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 |
Re: Datei auswerten
Hallo Motu,
ich möchte die etwas korrigieren Zitat:
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:
5) Speichere das Objekt mit dem TList-Objekt der VCL in einer internen Liste ab.
TMessdaten = class(object)
private ...F_spaltennamen: Real; public property ...spaltennamen: Real read F_spaltennamen write F_spaltennamen end;
Delphi-Quellcode:
6) Am Ende der Datei, schließe die Datei mit CloseFile(filevar).
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; 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 |
Re: Datei auswerten
Also mein Array ist voll, die Datei auch schon wieder zu.
nun habe ich folgenden Idee:
Delphi-Quellcode:
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.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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