AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringList "rotieren"?

Offene Frage von "LDericher"
Ein Thema von LDericher · begonnen am 16. Sep 2008 · letzter Beitrag vom 16. Sep 2008
Antwort Antwort
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

StringList "rotieren"?

  Alt 16. Sep 2008, 17:53
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...
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: StringList "rotieren"?

  Alt 16. Sep 2008, 18:17
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...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: StringList "rotieren"?

  Alt 16. Sep 2008, 18:25
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:

 sl.Text := RotateString(sl);
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.
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