Array Sortierung nach Text

4. Juni 2008 18:02

Hallo zusammen

Ich muss einen Array nach Text sortieren. Hat das von euch schon mal jemand gemacht, wenn ja, wie?

Grüssle
Bo

4. Juni 2008 18:12

Du meinst, du hast einen Array vom Typ Text? Da steht zum Beispiel drin
Array[1]='Boah ey';
Array[2]='Zum Teufel!'
Array[3]='Nee!'

und du möchtest das hier?
Array[1]='Boah ey';
Array[2]='Nee!'
Array[3]='Zum Teufel!'

4. Juni 2008 18:13

Salut Natalie

Ja genau...

Gruss zurück

4. Juni 2008 18:40

Du nimmst einen zweiten Array und füllst ihn nach Bubble-Sort-Algorithums (siehe Google&Co.), würd ich sagen ...

4. Juni 2008 19:19

Wenn ausgeschlossen ist, das Feldwerte mehrfach vorkommen, könnte man auch eine temporäre Tabelle mit einem Feld (die muss zur Laufzeit nicht lizenziert sein) zu Sortierung nutzen. Einfach alle Texte einzeln dort einfügen und hinterher vom ersten Datensatz abarbeiten.

Wenn Feldwerte mehrfach vorkommen können, muss die temporäre Tabelle zwei Felder haben (zweites Feld als Integer, wenn kein INSERT mit 1 möglich dann um 1 erhöhen usw. bis ein INSERT möglich ist).

Re: Array Sortierung nach Text

2. September 2010 08:30

hi, ich hätte auch ne frage zum array sort verfahren.

hab nen array mit 5 INT , diese sollen nach größe sortiert werden.

wie stellt man das am besten an?

Re: Array Sortierung nach Text

2. September 2010 10:59

Bubblesort ist dein Freund: Wikipedia - Bubblesort

Re: Array Sortierung nach Text

2. September 2010 11:05

Ich würde sagen, dass bei 5 Einträgen die Umsetzung eines Sortieralgorithmus mit Kanonen auf Spatzen schießen ist :wink: .

Re: Array Sortierung nach Text

2. September 2010 11:12

Sebastian Pfliegel hat geschrieben:Bubblesort ist dein Freund: Wikipedia - Bubblesort


ja das ist mir bewusst, ich hab leider grade keine ahnung wie man das in C/AL um setzt :(

Re: Array Sortierung nach Text

2. September 2010 11:33

Der Nachteil in NAV dürfte sein, dass, wenn ich ein Array vom Typ Int und Dimension 10, in dem die ersten 3 Elemente gefüllt worden sind, am Ende das Array mit 7 führenden Nullen zurück bekomme. Man müsste also die Anzahl der zu sortierenden Elemente mitgeben.

Re: Array Sortierung nach Text

2. September 2010 11:37

Code:
  n := Länge( A )
  wiederhole
    vertauscht := falsch
    für jedes i von 1 bis n - 1 wiederhole
      falls A[ i ] > A[ i + 1 ] dann
        vertausche( A[ i ], A[ i + 1 ] )
        vertauscht := wahr
      ende falls
    ende für
    n := n - 1
  solange vertauscht und n > 1

n := 5;
REPEAT
  Swapped := FALSE;
  FOR i := 1 TO n - 1 DO BEGIN
    IF MyArray[i] > MyArray[i+1] THEN BEGIN
      SwapInts(MyArray[i],MyArray[i+1]);
      Swapped := TRUE;
    END;
  END;
n := n - 1;
UNTIL Swapped AND n > 1;


So schwer war das nicht, oder? :)
Du musst halt SwapInts noch selbst basteln, was aber nicht so schwer sein sollte. (Stichwort Drittvariable und CallByReference).

Naja McClane, wenn dann habe ich gerne eine Lösung/Logik für das gleiche Problem, egal wie groß dieses ist.

Re: Array Sortierung nach Text

2. September 2010 11:43

Sebastian Pfliegel hat geschrieben:
Code:
n := 5;
REPEAT
  Swapped := FALSE;
  FOR i := 1 TO n - 1 DO BEGIN
    IF MyArray[i] > MyArray[i+1] THEN BEGIN
      SwapInts(MyArray[i],MyArray[i+1]);
      Swapped := TRUE;
    END;
  END;
n := n - 1;
UNTIL Swapped AND n > 1;

Das bricht nach dem ersten Durchlauf inklusive Austausch ab, oder? :wink:

Re: Array Sortierung nach Text

2. September 2010 11:59

Code:
UNTIL (NOT Swapped) OR (n <= 1);

Re: Array Sortierung nach Text

2. September 2010 12:00

Until (Not Swapped) sollte reichen.

Re: Array Sortierung nach Text

2. September 2010 12:08

Code:
UNTIL (NOT Swapped) OR (n <= 1);

so funktioniert es :)

nur
Code:
UNTIL (NOT Swapped)
führt bei mir zu einer unvollständigen sortierung :) danke für eure hilfe

für swapint hab ich das hier gebastelt:
Code:
temp := int2;
int2 := int1;
int1 := temp;

Re: Array Sortierung nach Text

2. September 2010 12:33

NoX hat geschrieben:nur
Code:
UNTIL (NOT Swapped)führt bei mir zu einer unvollständigen sortierung :)

Wenn's nichts mehr zu tauschen gibt, ist er fertig.

Re: Array Sortierung nach Text

2. September 2010 13:11

Ich hab den Algorithmus doch nur von Wikipedia gekla... ich meine für meine kleine Demonstation benutzt :D

Re: Array Sortierung nach Text

2. September 2010 13:15

Sebastian Pfliegel hat geschrieben:Ich hab den Algorithmus doch nur von Wikipedia gekla... ich meine für meine kleine Demonstation benutzt :D

Liefen deine Abschlussprüfungen auch so? :mrgreen:

Re: Array Sortierung nach Text

2. September 2010 13:55

Sebastian Pfliegel hat geschrieben:Ich hab den Algorithmus doch nur von Wikipedia gekla... ich meine für meine kleine Demonstation benutzt :D


den hatte ich auch schon gesehen, konnte es leider nur net umsetzten :( (azubi seit einem monat dabei)

Re: Array Sortierung nach Text

2. September 2010 14:11

McClane hat geschrieben:Liefen deine Abschlussprüfungen auch so? :mrgreen:

Um ernst zu bleiben: Ja! Abschlussprüfung zum Fachinformatiker ist nichts anderes als alles Mögliche aus dem Handbuch (welches für die Abschlussprüfung zugelassen ist) zu zitieren.

NoX hat geschrieben:azubi seit einem monat dabei

Den Spass hab ich seit ein paar Wochen hinter mir.

Re: Array Sortierung nach Text

2. September 2010 14:29

So bitteschön ...

Code:
Text[1] := 'Sortieren, wozu?';
Text[2] := 'Boah ey';
Text[3] := 'MSDynamics.de ist spitze!';
Text[4] := 'Was zum Geier?';
Text[5] := 'Ich will nicht mehr!';
Text[6] := 'Juhu, ich hab ab morgen Urlaub.';

FOR i := 1 to ARRAYLEN(Text)-1 DO BEGIN
  FOR j := i+1 to ARRAYLEN(Text) DO BEGIN
    IF (Text[j] < Text[i]) THEN BEGIN
      TempText := Text[j];
      Text[j] := Text[i];
      text[i] := TempText;
    END;
  END; 
END;

FOR i := 1 TO ARRAYLEN(Text) DO MESSAGE(Text[i]);


Die Textvariablen sollten Text(50) sein.

Re: Array Sortierung nach Text

19. April 2016 10:10

Hallo,

der Post ist zwar schon was älter, aber ich habe im Zuge meiner eigenen Ausbildung dazu eine Frage:

Ich würde gerne Nummern in einem Array Sortieren, um diese später mit einem anderen Array vergleichen zu können. Die Arrays sollen nach Wertgröße Absteigend sortiert sein.
Mein Problem hierbei ist, dass die Nummern durchaus auch mit einem Buchstaben beginnen, z.B.: Y931 oder K293 aber eben auch ganz ohne Buchstaben wie: 932

Ist es überhaupt möglich Werte vom Typ Code, die auch Buchstaben enthalten zu sortieren? Ich habe nur Beispiele mit reinen Zahlen gefunden, oder wie hier mit String-Längen.

Danke schon mal.

Gruß

Kristin

Re: Array Sortierung nach Text

19. April 2016 10:39

Hallo,

prinzipiell kannst du sortieren, wonach du willst. Deine Vergleichsroutine muss nur entscheiden können, welcher Wert größer bzw. kleiner ist. :wink:

Gruß Fiddi

Re: Array Sortierung nach Text

19. April 2016 10:53

Kristin K. hat geschrieben:Ich würde gerne Nummern in einem Array Sortieren, um diese später mit einem anderen Array vergleichen zu können. Die Arrays sollen nach Wertgröße Absteigend sortiert sein.
Mein Problem hierbei ist, dass die Nummern durchaus auch mit einem Buchstaben beginnen, z.B.: Y931 oder K293 aber eben auch ganz ohne Buchstaben wie: 932


Wenn du genauso sortieren möchtest wie im NAV, dann kannst du auch die Variante (mit 2 Feldern und Schlüsseln, also dem INSERT von Arraynr. dem Inhalt des Array) die Kowa vorgeschlagen hat nehmen.
Also eine temporäre Tabelle befüllen und diese für sich im jeweiligen Feld aufsteigend oder absteigend sortieren lassen.
Dann wäre man konform mit seiner Datenbank (native/SQL).
Native und SQL Datenbanken sortieren nämlich Codefelder unterschiedlich.

mfg,
winfy

Re: Array Sortierung nach Text

19. April 2016 13:23

Hallo,

ich habe es nicht über eine Tabelle, sondern über ein zweidimensionales Array gelöst :)
myArray[a][b] wobei a = meine Prod. Order No. ist und b = meine Rohstoff Nr.
Das dann in einen Bubblesort absteigend sortiert.

Danke auf jeden Fall!

Gruß

Kristin