AGB  ·  Datenschutz  ·  Impressum  







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

Text in 5er Buchstabengruppen anordnen

Ein Thema von eragon123 · begonnen am 29. Mär 2010 · letzter Beitrag vom 31. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: Text in 5er Buchstabengruppen anordnen

  Alt 29. Mär 2010, 18:23
Mal so ganz grundsätzlich:
Man sollte die Aufgabe "Text in 5er Buchstabengruppen anordnen" nicht direkt auf den Labels ausführen sondern eine saubere Funktion schreiben.
Delphi-Quellcode:
function Mach5erGruppen(const text:string):string;
var i:integer;
begin
  Result := text;
  for i := (Length(text) - 1) div 5 downto 1 do
    Insert(' ', result, i * 5 + 1);
end;
Ohne eine eigene Funktion sieht der Sourcecode wie ein Haufen Müll aus; man weiss eine Woche später nicht mehr was da eigentlich gemacht wird.
Andreas
  Mit Zitat antworten Zitat
eragon123

Registriert seit: 6. Mär 2010
53 Beiträge
 
#12

Re: Text in 5er Buchstabengruppen anordnen

  Alt 30. Mär 2010, 17:00
Ok war noch ein ganz einfacher Logikfehler drin. Das ganze wird ja mehrmals auf den gleichen String losgelassen. Dabei zählt der dann bereits vorhandene Leerzeichen mit. So hier die funktionierende neue Fassung:
Delphi-Quellcode:
function buchstaben5ergruppen(const text: string): string;
  var i: Integer;
  begin
    Result :='';
    for i := 1 to Length(Text) do
    begin
      if text[i] <> ' then
        Result := Result + text[i];
    end;
    for i := (Length(text)-1) div 5 downto 1 do
    begin
      Insert(' ', result, i*5 +1);
      mmotest.Text := mmotest.Text + Result;
    end;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Text in 5er Buchstabengruppen anordnen

  Alt 30. Mär 2010, 17:22
Length(text) gibt noch die alte Länge, inkl. der Leerzeichen an, wärend die "neue" Länge nötig wäre.

Delphi-Quellcode:
function buchstaben5ergruppen(const text: string): string;
  var i: Integer;
  begin
    Result := StringReplace(Text, ' ', '', [rfReplaceAll]);
    for i := (Length(Result) - 1) div 5 downto 1 do
      Insert(' ', Result, i * 5 + 1);
  end;
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#14

Re: Text in 5er Buchstabengruppen anordnen

  Alt 31. Mär 2010, 12:28
Wie wäre es denn so? Ich hab allerdings nicht sonderlich getestet, es kann also noch Fehler enthalten:
Delphi-Quellcode:
function GroupString(const text: string; CountPerGroup: integer;
                     EliminateSpaces: Boolean = true): string;
var i, j: integer;
begin
  SetLength(Result, Length(text) + Length(text) div CountPerGroup);
  j := 0;
  for i := 1 to Length(text) do
    if not EliminateSpaces or (text[i] <> ' ') then
      begin
        inc(j);
        Result[j] := text[i];
        if Succ(j) mod Succ(CountPerGroup) = 0 then
          begin
            inc(j);
            Result[j] := ' ';
          end;
      end;
  SetLength(Result,j);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:56 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