Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringList "rotieren"? (https://www.delphipraxis.net/120785-stringlist-rotieren.html)

LDericher 16. Sep 2008 18:53


StringList "rotieren"?
 
Hallo DP!

Kennt jemand eine Möglichkeit, eine StringListe zu "drehen"?

Also aus

Code:
ABCDE
FGHIJ
KLM
würde

Code:
AFK
BGL
CHM
DI
EJ
Die Strings haben hierbei eine feste Maximallänge

Habe schon gesucht, nichts gefunden und auch keine wirkliche Idee für einen Algorithmus oder gar eine Implementation...

Kann mir jemand helfen?

Add: Habe jetzt ein halbwegs brauchbares Konstrukt gefunden, ich denke aber, dass hier etwas ordentliches herauskonnt... :thumb:

LDericher 16. Sep 2008 19:17

Re: StringList "rotieren"?
 
Delphi-Quellcode:
function Th4xX0r.ListRotation(Input: TStringList): TStringList;
var
  TempSTRs:array of string;
  I,
  J:integer;
begin
Result:=TStringList.Create;
SetLength(TempSTRs, PWLen);
for I:=0 to(Input.Count-1)do
   begin
   for J:=1 to(Length(Input.Strings[I]))do
      begin
      TempStrs[J-1]:=TempStrs[J-1]+Input.Strings[I][J];
      end;
   end;
for I:=0 to(High(TempStrs))
   do Result.Add(TempStrs[I]);
end;
Das wäre meine Idee zu dem Thema...

toms 16. Sep 2008 19:25

Re: StringList "rotieren"?
 
oder so:

Delphi-Quellcode:
function RotateString(sl: TStrings): string;
const
  LINE_MAX_LENGTH = 10;
var
  s: string;
  v, h: Integer;
begin
  s := '';
  for h := 1 to LINE_MAX_LENGTH do
  begin
    for v := 0 to sl.Count - 1 do
      s := s + Copy(sl[v], h, 1)
    s := s + #13#10;
  end;
  Result := s;
end;
Aufruf:

Delphi-Quellcode:
 sl.Text := RotateString(sl);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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 by Thomas Breitkreuz