Einzelnen Beitrag anzeigen

Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#4

Re: String alle X Zeichen splitten

  Alt 28. Mär 2009, 21:24
Ein Ansatz, im Blindflug getippt:
Delphi-Quellcode:
program Demo;

{$AppType Console}

uses
  SysUtils, Classes;

type
  EOutOfBounds = class(Exception);

function SplitStr(var Str: String; const X: Integer): String;
begin
  if (X < 1) or (X > Length(Str)) then
    raise EOutOfBounds.CreateFmt('SplitStr: X nicht in [%d..%d].',[1,Length(Str)]);
  Result:=Copy(Str,1,X);
  Str:=Copy(Str,X+1,Length(Str)-X);
end;

procedure SplitStrAll(Str: String; const X: Integer; const StringList: TStringList);
begin
  StringList.Clear;
  while Length(Str) > X do
    StringList.Add(SplitStr(Str,X));
  if Lengh(Str) > 0 then
    StringList.Add(Str);
end;

procedure WriteStringList(const StringList: TStringList);
var
  Index: Integer;
begin
  with StringList do
    for Index:= 0 to Count-1 do
      WriteLn(Items[Index]);
end;

var
  Str: String;
  StringList: TStringList;
begin
  Str:='0123456789';
  StringList:=TStringList.Create;
  try
    SplitStrAll(Str,3,StringList):
    WriteStringList(StringList);
  finally
    StringList.Free;
  end;
  WriteLn('Enter drücken...');
  ReadLn;
end.
Eventuell sind noch einige Tippfehler drin...

Viel Spaß beim Lernen!
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat