Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Text in 5er Buchstabengruppen anordnen

  Alt 29. Mär 2010, 17:04
Zitat von eragon123:
Mein Ansatz
Delphi-Quellcode:
beschriftung := lblout.Caption; // In 5er Gruppen annordnen
beschriftung2 := lblin.Caption;
for i := 0 to Length(lblin.Caption) div 5 do
begin
  Insert(' ',beschriftung,i*5);
  Insert(' ',beschriftung2,i*5);
end;
lblout.Caption := beschriftung;
lblin.Caption := beschriftung2;
Erstens ein String hat einen 1-basierenden Index.
for i := 0 to und i*5 ergeben aber als ersten Wert eine 0, also müßte überall +1 hinzu.
Außerdem willst du doch nur gruppieren/unterteilen und dann benötigst du keine Leerzeichen an erster Stelle und unter Umständen auch nicht an letzter Stelle.

Wenn du von Vorne bis Hinten durchgehst und enfügst, dann wird der String um die eingefügten Zeichen Länger (also vor den Einfügestellen) und demnach müßte für jede Einfügung 1 ( i*Length(' ') ) hinzugerechnet werden.

Lösung: von hinten beginnen

Delphi-Quellcode:
for i := 1 do (Length(lblin.Caption) - 1) div 5 do
  //Insert(' ', beschriftung, i * (5 + Length(' ')) + 1);
  Insert(' ', beschriftung, i * 6 + 1);
oder
Delphi-Quellcode:
for i := (Length(lblin.Caption) - 1) div 5 downto 1 do
  Insert(' ', beschriftung, i * 5 + 1);

Zitat von eragon123:
Beschriftung 1 und 2 sind strings.
Sind diese auch gleich lang?
Wenn nicht, dann benötogst du 2 Schleifen.
$2B or not $2B
  Mit Zitat antworten Zitat