Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Suchen, verarbeiten Daten aus Array (https://www.delphipraxis.net/163838-suchen-verarbeiten-daten-aus-array.html)

gallstone 18. Okt 2011 14:59

Suchen, verarbeiten Daten aus Array
 
Hi Leute,

wie einige wissen habe ich mir ein Array aus einer Textdatei gefüllt (http://www.delphipraxis.net/163726-t...-kopieren.html)

Ich stehe nun vor dem Problem der Auswertung.
In dem Array sind nun Auftrag erfasst.

0............1
Auftrag......Franktion
1234.........1
1234.........1
1234.........1
1235.........1
1236.........1
1236.........1
1236.........2
1236.........2
1237.........1
1237.........2
1237.........3
1237.........4
usw.

Es gibt nun folgende Fälle (bei Aufträgen mit mehreren Zeilen):

1. wenn eine Auftragsnummer immer die gleiche Franktion hat (immer 1) dann soll jede Zeile erhalten bleiben
2. wenn die Franktion wechselt soll immer nur die erste Zeile erhalten bleiben
auch wenn es so aussieht wie im Beipiel 1236.

Wie würdet ihr an sowas heran gehen?

Ich habe mir überlegt:

ich schaue ob in feld[0,0] der gleiche Wert steht wie in feld[1,0] und in feld[0,1] auch gleich -->
wenn nein, dann kpoiere ich feld[0,k] in ein neues Feld (zum weiterarbeiten). wenn ja dann kopiere ich alle Zeilen in ein neues Feld.

Ist das vom Ansatz her richtig?
Gibt es einen Befehl ganze Zeilen auf einmal von einem Array in ein nächste zu kopieren ohne schleife?

himitsu 18. Okt 2011 15:32

AW: Suchen, verarbeiten Daten aus Array
 
Jetzt die Frage: Warum wolltest du das unbedingt in einem Array haben?

Ein Array mittendrin zu verändern ist nunmal nicht so "einfach".
Bei einer TStringList ruft man einfach Delete auf und weg ist die Zeile, wärend man beim Array eben alle nachfolgenden Werte/Zeilen selber um 1 nach vorne verschieben und die Arraylänge anpassen muß.

Also nein, es geht nicht ohne Schleife. (und wer mir jetzt mit [OH]Move[OH] kommt, der bekommt ein paar auf die Finger :warn: )


Bei dem hier vorliegenden Wissensstand und da es eh nicht auf Geschwindigkeit ankommt, würde ich hier davon abraten an dem Speichermanagerment der Strings rumzumanipulieren.


@DeddyH: Jupp, und wenn man schon dabei ist, kann man dort auch gleich die Zeilen mit aufteilen, da hier ja jeweils zwei Werte in einer Zeile/String abgelegt sind.

DeddyH 18. Okt 2011 15:34

AW: Suchen, verarbeiten Daten aus Array
 
Und da die Daten ja in Beziehung zueinander stehen, bietet sich ein Record oder eine Klasse an. Das in eine Liste gepackt, dann kann man wunderbar sortieren, einfügen, löschen etc.

[edit] @Frank: Mit den Daten, die in Beziehung stehen, meinte ich ja Auftrag und Franktion (btw: was ist das? Sollte das vielleicht Fraktion heißen?). Diese beiden stellen dann die Felder des Records/der Klasse dar. [/edit]

gallstone 18. Okt 2011 15:53

AW: Suchen, verarbeiten Daten aus Array
 
Hi,

ja es ist nicht "so einfach", habe ich bemerkt. komme auch schnell durcheinander mit den ganzen schleifen.
stecke halt da nicht so drinn.

fraktion soll es heißen ;)

da glücklicherweise die zeilen immer gleich sind, werde ich mich mal an einer anderen variante versuchen (memofeld als zwischenlager).

mal sehen ob das fruchtet.

@deddy:

ich habe mal deinen qt aus dem anderen thread versucht. kann es sein, dass bei delphi 2007 das ganze net dockt?
Code:
type
  TDeinArray = array of array of string;


da meckert er:

doppelpunkt erwartet aber = gefunden
mache ich einen doppelpunkt sacht er: bezeichner erwartet aber : gefunden ;)

oder fehlt mir noch mehr?

DeddyH 18. Okt 2011 15:56

AW: Suchen, verarbeiten Daten aus Array
 
Mein Delphi 2007 schluckt das anstandslos. Hast Du es vielleicht an die falsche Stelle geschrieben?

gallstone 18. Okt 2011 16:06

AW: Suchen, verarbeiten Daten aus Array
 
Zitat:

Zitat von DeddyH (Beitrag 1131082)
Mein Delphi 2007 schluckt das anstandslos. Hast Du es vielleicht an die falsche Stelle geschrieben?

kommt drauf an wo es richtig ist :)

hab es bei allen anderen unter type hingeschrieben, also ganz oben.

p80286 18. Okt 2011 16:23

AW: Suchen, verarbeiten Daten aus Array
 
Zitat:

Zitat von gallstone (Beitrag 1131087)
hab es bei allen anderen unter type hingeschrieben, also ganz oben.

Dann zeig doch mal was bei Dir noch so alles ganz oben steht :-)

Gruß
K-H

gallstone 19. Okt 2011 15:12

AW: Suchen, verarbeiten Daten aus Array
 
Code:
type
  TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    OpenDialog1: TOpenDialog;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn2: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
so und darunter habe ich es geschrieben. ist doch richtig oder?

DeddyH 19. Okt 2011 15:29

AW: Suchen, verarbeiten Daten aus Array
 
Noch innerhalb der TForm1-Deklaration? Da ist es falsch.

gallstone 20. Okt 2011 08:39

AW: Suchen, verarbeiten Daten aus Array
 
Zitat:

Zitat von DeddyH (Beitrag 1131308)
Noch innerhalb der TForm1-Deklaration? Da ist es falsch.

ok, wo dann?

danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 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