Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Buchstaben sortieren aus einem Memofeld

  Alt 24. Aug 2009, 22:58
Hmmm du könntest dich vielleicht mit Bucketsort beschäftigen?

Dafür würde ich dann ein zweidimensionales Array nehmen und vorher einen Record typisieren, in der du Zeichen/Position speicherst.
Delphi-Quellcode:
type
  TCharPosArr = record
    CharPosArr : array of TCharPos;
    CharSet : TSysCharSet; // Darin kann man mehrere Zeichen speichern die du dann mit "in" überprüfen kannst
  end;

  TCharPos = record
    C : Char; // Zeichen
    P : Integer; // Position
  end;

var
  CharPos : array [0..25] of TCharPosArr;
Und jetzt musst du zuerst dein Array initialisieren:
Delphi-Quellcode:
CharPos[0].CharSet := ['aAäÄ']; // d.h. alle a/A/ä/Ä werden darein sortiert
CharPos[1].CharSet := ['...'];
Das kannst du natürlich auch in eine Schleife packen (wobei du dann die Umlaute (evtl.) mit beachten musst!).

Und dann gehst du jetzt jedes Zeichen durch und testest, ob das Zeichen zu den erstem zum zweiten etc. passt:
Delphi-Quellcode:
if Str[i] in CharPos[j].CharSet then
begin
  // Einen neuen Eintrag anfügen
  SetLength(...);
  CharPos[High(CharPos)]....
  // Und dann das Gesuche des richtigen "Korbes" abbrechen
  Break;
end;
Ich hoffe das war einigermaßen verständlich.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat