Um die Vorteile von Marabus Funktion nutzen zu können, einfach einbauen. Das Anpassen der Bezeichner, damit sie auch in der neuen Situation einen sinnvollen Namen, hat mehr Arbeit gemacht.
Das ist die neue Prozedur DoColumns:
Delphi-Quellcode:
{ Die eigentlich gewünschte Funktion: Das Erzeugen der
"Textspalten". }
procedure DoColumns(const Strings: TStrings; const MaskCh: Char = '#');
var
ColIndex: Integer;
MaskMatch, MaskMatchStage: Boolean;
CongrStr: String;
begin
if Strings.Count = 0 then Exit;
CongrStr:=CongruenceStr(Strings,MaskCh);
MaskMatchStage:=CongrStr[Length(CongrStr)] = MaskCh;
for ColIndex:= Length(CongrStr) downto 0 do
begin
MaskMatch:=CongrStr[ColIndex] = MaskCh;
{ Im Folgenden wird nichts anderes gemacht als auf den
Wechsel von Folgen von Spalten mit nur einem gleichen
Zeichen und Folgen von Spalten mit unterschiedlichen
Zeichen gewartet und jeweils die "Leerzeichen-Spalte"
eingefügt. }
if MaskMatch xor MaskMatchStage then
begin
InsertChar(Strings,ColIndex+1);
MaskMatchStage:=MaskMatch;
end;
end;
end;
Gruß,
Panthrax.
[edit=Panthrax]Fähler korrigird[/edit]