Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   String in einer bestimmten Länge halten. (https://www.delphipraxis.net/156502-string-einer-bestimmten-laenge-halten.html)

smart 4. Dez 2010 13:03

String in einer bestimmten Länge halten.
 
Hallo Alle!

Wie kann man einen String auf einer bestimmten Länge halten. Der String soll 20 Buchstaben lang sein. Wenn es zu klein ist, soll er mit Lehrzeichen aufgefüllt werden und wenn er zu groß ist, soll er abgeschnitten werden. In der Delphi-Hilfe habe ich keine Routine gefunden.

Luckie 4. Dez 2010 13:12

AW: String in einer bestimmten Länge halten.
 
Selber schreiben.

Aber was sind Lehrzeichen? Zeichen von einem Lehrer an der Tafel?

himitsu 4. Dez 2010 13:24

AW: String in einer bestimmten Länge halten.
 
Auffüllen kann man auch mit Delphi-Referenz durchsuchenFormat

billig und unoptimal
Delphi-Quellcode:
while Length(s) > 20 do Delete(s, Length(s), 1);
while Length(s) < 20 do s := s + ' ';
einfach
Delphi-Quellcode:
s := Copy(s + '   <<hier die 20 Leerzeichen - leider vernichtet die DP Mehrfachleerzeichen>>   ', 1, 20);
.
hübsch
Delphi-Quellcode:
if Length(s) < 20 then s := s + StringOfChar(' ', 20 - Length(s))
else if Length(s) > 20 then s := Copy(s, 1, 20);

vergessen 4. Dez 2010 13:25

AW: String in einer bestimmten Länge halten.
 
An den String 20 Leerzeichen dranhängen und vom Ergebnis immer nur die ersten 20 Zeichen nehmen?

smart 4. Dez 2010 13:45

AW: String in einer bestimmten Länge halten.
 
Zitat:

Zitat von Luckie (Beitrag 1066101)
Aber was sind Lehrzeichen? Zeichen von einem Lehrer an der Tafel?

Nein, im Hausheft ;-)

DeddyH 4. Dez 2010 13:48

AW: String in einer bestimmten Länge halten.
 
Ich hätte auch noch einen Vorschlag:
Delphi-Quellcode:
uses math;

function StringOfLength(const s: string; Len: Cardinal; CharToFill: Char = #32): string;
var i: integer;
begin
  Result := StringOfChar(CharToFill,Len);
  for i := 1 to Min(Len, Length(s)) do
    Result[i] := s[i];
end;

smart 4. Dez 2010 14:35

AW: String in einer bestimmten Länge halten.
 
Vielen Dank, an Euch Alle. Da fällt die Entscheidung schwer was man nehmen soll.

DeddyH 4. Dez 2010 15:19

AW: String in einer bestimmten Länge halten.
 
Naja, wenn es sich um eine Hausaufgabe handelt, würde ich an Deiner Stelle das nehmen, was ich am ehesten verstehe und auch erklären kann ;)

Namenloser 4. Dez 2010 15:24

AW: String in einer bestimmten Länge halten.
 
Oder hier als kurzer Einzeiler:
Delphi-Quellcode:
S := Format('%-20.20s', [S])
Das Minus kann man weglassen, in dem Fall wird der String rechtsbündig ausgerichtet.

DeddyH 4. Dez 2010 15:27

AW: String in einer bestimmten Länge halten.
 
Damit werden zu lange Strings aber nicht abgeschnitten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 1 von 2  1 2      

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