Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringstelle auf "leer" prüfen (https://www.delphipraxis.net/128290-stringstelle-auf-leer-pruefen.html)

DonnieDarko_02 27. Jan 2009 13:49


Stringstelle auf "leer" prüfen
 
Ich habe einen String
Delphi-Quellcode:
stri:string[10];
nun wird diesem string aus einem editfeld ein eingegebener name übergeben, das ganze dient einem highscore...doch es soll immer auf
die vollen zehn zeichen aufrunden, damit die listbox gleichmäßig aussieht

Delphi-Quellcode:
for s:=0 to 10 do
begin if stri[s]={Was muss ich hier als eigenschaft einsetzen???} then stri[s]:=''; end;

Meflin 27. Jan 2009 13:54

Re: Stringstelle auf "leer" prüfen
 
Mir ist nicht ganz klar, was du erreichen willst - aufrunden?!
Sollen die Leerzeichen am Anfang oder am Ende angehängt werden?!

HenKst 27. Jan 2009 13:54

Re: Stringstelle auf "leer" prüfen
 
Du kannst nicht prüfen ob eine Stelle im String leer ist, da steht immer irgendetwas, wenn da nichts steht ist der string zuende und du kriegst ne accessviolation wenn du auf die Adresse zugreifen willst.

Aber das bringt uns ja schon zur(bzw zu einer) Lösung, du prüfst ob du am letzen zeichen vom string vorbei bist also
Delphi-Quellcode:
if s > length(stri) then stri:= stri + ' ';
GreeZ HenKst

Noedel 27. Jan 2009 13:55

Re: Stringstelle auf "leer" prüfen
 
ich denke du suchst length()
Gibt dir die Länge des Strings zurück -> als Integer.

Fussball-Robby 27. Jan 2009 13:58

Re: Stringstelle auf "leer" prüfen
 
Wenn du (so wie ich das verstanden habe) am Anfang jedes Strings Leerzeichen anhängen willst, bis der String 10 Zeichen lang ist, würde ich das so machen:
Delphi-Quellcode:
while Length(str) < 10 do
  s := ' ' + s;
Edit: Obwohl, besser so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  stri: String;
const
  Len = 10;
begin
  stri :=Edit1.Text;
  stri := StringOfChar(' ', Len - Length(stri)) + stri;
  Memo1.Lines.Add(stri);//oder was auch immer zur Ausgabe
end;

Noedel 27. Jan 2009 14:03

Re: Stringstelle auf "leer" prüfen
 
ich dachte, hinten dran?
aber ist ja wayne :D
Benutz doch dazu am Besten ne ValueListEditor oder nen Stringgrid :)
Übrigens gleichmäßig bekommst du das ganze eh nicht, wenn du die Font nicht auf Courier oder Courier new setzt ... Da kannst du so viele Leerzeichen machen, wie du willst, es wird immer schief

Fussball-Robby 27. Jan 2009 14:05

Re: Stringstelle auf "leer" prüfen
 
Zitat:

Zitat von Noedel
ich dachte, hinten dran?

Es geht hier doch nur ums Prinzip :mrgreen: Und mit dem bisher geschriebenen muss der Threadersteller wohl was anfangen müssen.

DonnieDarko_02 27. Jan 2009 14:07

Re: Stringstelle auf "leer" prüfen
 
Korrekt...ihr habt mir mit diesen lösungsansätzen wirklich geholfen...vielen dank

DeddyH 27. Jan 2009 14:08

Re: Stringstelle auf "leer" prüfen
 
Da würde ich doch eher rechtsbündig ausrichten als mich so zu verrenken.

himitsu 27. Jan 2009 14:22

Re: Stringstelle auf "leer" prüfen
 
statt
[quote="Fussball-Robby"]
Delphi-Quellcode:
while Length(str) < 10 do
  s := ' ' + s;
oder
Delphi-Quellcode:
stri := StringOfChar(' ', Len - Length(stri)) + stri;
einfach
Delphi-Quellcode:
stri := stri + '         ';
die Definition war ja
Delphi-Quellcode:
Var stri:string[10];
und dort wird alles über 10 Zeichen abgeschnitten :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 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