Einzelnen Beitrag anzeigen

Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#1

String in gleiche Bloecke teilen

  Alt 15. Nov 2006, 17:45
Hallo dpler,

ich stehe mal wieder vor einen Problem, undzwar moechte ich mehrere Strings auf gleiche Bloecke testen.
Die Strings die ich bekomme stehen in der form in einem memo:

Code:
aaaaaabbbbbbbb
aaaabbbbbbaaaa
aaabbbaabbbaaa
Also am Ende des tages moechte ich soetwas haben:

Code:
aaa aaabb bb bbbb
aaa abbbb bb aaaa
aaa bbbaa bb baaa
So das immer alle gleichen Bloecke mit einem leerzeichen abgegrenzt werden.

Hier habe ich mal angefangen das Ganze zu realisieren:

Delphi-Quellcode:
function MinValue: Integer;
var
  i: Integer;
begin
  result := 0;
  for i := 0 to form1.memo1.Lines.Count - 1 do
    if length(form1.memo1.Lines[i]) > result then
      result := length(form1.memo1.Lines[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i, y: Integer;
  jmp: Boolean;
  s: string;
  count: integer;
  aoi: array of integer;
begin
  setlength(aoi, 0);
  for y := 1 to MinValue do
  begin
    jmp := true;
    for i := 0 to memo1.Lines.Count - 1 do
      if memo1.Lines[0][y] <> memo1.Lines[i][y] then
        jmp := false;
    if jmp then
    begin
      showmessage('gleich : ' + inttostr(y));
      setlength(aoi, length(aoi) + 1);
      aoi[high(aoi)] := y;
    end;
  end;
  count := 0;
  for y := 0 to high(aoi) do
  begin
    inc(count);
    for i := 0 to memo1.Lines.Count - 1 do
    begin
      s := memo1.Lines[i];
      insert(' ', s, aoi[y] + count);
      memo1.Lines[i] := s;
    end;
  end;
end;

Nur leider bekomme ich als ergebniss soetwas:

Code:
a a a aaabbb b bbbb
a a a abbbbb b aaaa
a a a bbbaab b baaa
Was nicht ganz dem entspricht was ich haben wollte.

Waere sehr dankbar, wenn sich das mal jemand angucken koennte.

grueße win32
  Mit Zitat antworten Zitat