Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   komma am ende von string entfernen (https://www.delphipraxis.net/162663-komma-am-ende-von-string-entfernen.html)

Lyan 1. Sep 2011 15:22

Delphi-Version: 5

komma am ende von string entfernen
 
hallow ie kann ich eigtl. ein komma am ende von einem String entfernen?


Code:
procedure TForm2.Button1Click(Sender: TObject);
var i: Integer;
begin
  i := 0;
    repeat
      inc(i);
      memo1.Lines.Add(inttostr((i)));
    until (i = 100);
end;
procedure TForm2.Button2Click(Sender: TObject);
var iZaehler: Integer;
    sKstring: string;

begin
  for izaehler := 1 to 100 do
  begin
    sKstring := sKstring + inttostr(iZaehler) + ', ';  // Hier das Komma ;
  end;
  memo1.Lines.add(sKstring);
end;
end.
danke

Sir Rufo 1. Sep 2011 15:29

AW: komma am ende von string entfernen
 
:wiejetzt:

Du fügst ein Komma an das Ende vom String ein und willst jetzt wissen, wie man das wegbekommt?
Lass es einfach sein ... dann kommt da auch kein Komma hin ...

(bzw. so wie du das aufgeschrieben hast geht das ja schon mal gar nicht ... das wird so nicht compiliert)

Lyan 1. Sep 2011 15:30

AW: komma am ende von string entfernen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1120923)
:wiejetzt:

Du fügst ein Komma an das Ende vom String ein und willst jetzt wissen, wie man das wegbekommt?
Lass es einfach sein ... dann kommt da auch kein Komma hin ...

(bzw. so wie du das aufgeschrieben hast geht das ja schon mal gar nicht ... das wird so nicht compiliert)

jetzt - so meine ich

doch wird compiliert

Bummi 1. Sep 2011 15:31

AW: komma am ende von string entfernen
 
ich nehme an Du meinst so etwas
Delphi-Quellcode:
var iZaehler: Integer;
    sKstring: string;

begin
  for izaehler := 1 to 100 do
  begin
    sKstring := sKstring + inttostr(iZaehler)+ ', ' ; // Hier das Komma
  end;
  memo1.Lines.add(Copy(sKstring,1,Length(sKstring) - 2));
end;

Lyan 1. Sep 2011 15:32

AW: komma am ende von string entfernen
 
Zitat:

Zitat von Bummi (Beitrag 1120929)
ich nehme an Du meinst so etwas
Delphi-Quellcode:
var iZaehler: Integer;
    sKstring: string;

begin
  for izaehler := 1 to 100 do
  begin
    sKstring := sKstring + inttostr(iZaehler)+ ', ' ; // Hier das Komma
  end;
  memo1.Lines.add(Copy(sKstring,1,Length(sKstring) - 2));
end;

ahja genau copy :) dank dir!

Sir Rufo 1. Sep 2011 15:33

AW: komma am ende von string entfernen
 
Zitat:

Zitat von Lyan (Beitrag 1120926)
Zitat:

Zitat von Sir Rufo (Beitrag 1120923)
:wiejetzt:

Du fügst ein Komma an das Ende vom String ein und willst jetzt wissen, wie man das wegbekommt?
Lass es einfach sein ... dann kommt da auch kein Komma hin ...

(bzw. so wie du das aufgeschrieben hast geht das ja schon mal gar nicht ... das wird so nicht compiliert)

jetzt - so meine ich

doch wird compiliert

Ja, nach der Änderung ... ;)

Wenn du aber dort kein Komma haben möchtest, dann lass das doch einfach weg?

Andreas L. 1. Sep 2011 15:33

AW: komma am ende von string entfernen
 
In der Schleife
Delphi-Quellcode:
  if izaehler <> 100 then
    sKstring := sKstring + ', ';
So wird das Komma bei jedem Durchlauf außer beim Letzten hinzugefügt.

Lyan 1. Sep 2011 15:35

AW: komma am ende von string entfernen
 
Zitat:

Zitat von Andreas L. (Beitrag 1120934)
In der Schleife
Delphi-Quellcode:
  if izaehler <> 100 then
    sKstring := sKstring + ', ';
So wird das Komma bei jedem Durchlauf außer beim Letzten hinzugefügt.

ah auch gut herzlichen dank! ;)

Neutral General 1. Sep 2011 15:35

AW: komma am ende von string entfernen
 
Eine Alternative wäre auch nach der Schleife folgendes:

Delphi-Quellcode:
SetLength(sKstring,Length(sKstring)-1);

Sir Rufo 1. Sep 2011 15:37

AW: komma am ende von string entfernen
 
Möchtest du etwa folgendes Ergebnis haben:
Code:
1,2,3,4,5,6,7,8, .... ,100
Dann füge einfach die Zahlen in ein StringList (jede Zahl mit Add immer rein)
Und mit der Eigenschaft CommaText bekommst du dann die gewünschte Ausgabe ;)

Delphi-Quellcode:
var iZaehler: Integer;
    sl : TStringList;

begin
  sl := TStringList.Create;
  try

    for izaehler := 1 to 100 do
      sl.Add( IntToStr( iZaehler ) );

    memo1.Lines.add( sl.CommaText );

  finally
    sl.Free;
  end;
end;

DeddyH 1. Sep 2011 15:40

AW: komma am ende von string entfernen
 
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
const Zeilenenden: array[Boolean] of string = ('', ', ');
var iZaehler: Integer;
    sKstring: string;
begin
  for izaehler := 1 to 100 do
  begin
    sKstring := sKstring + inttostr(iZaehler) + Zeilenenden[izaehler <> 100];
  end;
  memo1.Lines.add(sKstring);
end;

Bummi 1. Sep 2011 15:43

AW: komma am ende von string entfernen
 
@DeddyH

mit Abstand am hübschesten ...

DeddyH 1. Sep 2011 15:44

AW: komma am ende von string entfernen
 
Danke :angel2:

Sir Rufo 1. Sep 2011 15:44

AW: komma am ende von string entfernen
 
@DeddyH: Das geht doch auch schöner ohne Array

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var iZaehler: Integer;
    sKstring: string;
begin
  for izaehler := 1 to 100 do
  begin
    sKstring := sKstring + inttostr(iZaehler) + IfThen( izaehler <> 100, ', ', '' );
  end;
  memo1.Lines.add(sKstring);
end;
Und falls das IfThen nicht beim Delphi dabei ist

Delphi-Quellcode:
function IfThen( BoolValue : Boolean; const TrueStr : string; const FalseStr : string = '' ) : string;
begin
  if BoolValue then
    Result := TrueStr
  else
    Result := FalseStr;
end;

DeddyH 1. Sep 2011 15:46

AW: komma am ende von string entfernen
 
Ich nehme aber lieber die Array-Lösung, die geht immer und benötigt keine Funktion.

Bummi 1. Sep 2011 15:48

AW: komma am ende von string entfernen
 
@DeddyH

wobei Sir Rufo's Lösung universeller einsetzbar ist ...

Lyan 1. Sep 2011 15:53

AW: komma am ende von string entfernen
 
Und jetzt möchte ich noch per radiobutton auswählen können das NUR grade Zahlen angezeigt werden oder nur ungerade,, ;D

TiGü 1. Sep 2011 15:59

AW: komma am ende von string entfernen
 
Schön für dich, wie wäre es mit selber nachdenken?
Wie würdest du denn diese Aufgabe mit Stift und Papier lösen?

stahli 1. Sep 2011 16:01

AW: komma am ende von string entfernen
 
Das solltest Du aber selbst schaffen - oder?
Durch Versuch+Irrtum lernt man am besten...

Ich werfe nur mal noch "odd" in den Raum :wink:

himitsu 1. Sep 2011 17:34

AW: komma am ende von string entfernen
 
Oder man setzt das Komma abhängig vom string und nicht vom Index.
Delphi-Quellcode:
var iZaehler: Integer;
    sKstring: string;

begin
  for izaehler := 1 to 100 do
  begin
    if sKstring <> '' then sKstring := sKstring + ', ';
    sKstring := sKstring + IntToStr(iZaehler);
  end;
  Memo1.Lines.Add(sKstring);
end;
Delphi-Referenz durchsuchenIfThen, statt dem IF geht natürlich auch.

Iwo Asnet 1. Sep 2011 18:00

AW: komma am ende von string entfernen
 
Wenn man nach 'Erweiterbarkeit' geht, ist die Lösung von himitsu die bessere, da die Schleifengrenze (hier: 100) nur an einer Stelle zu ändern ist.

DeddyH 1. Sep 2011 18:12

AW: komma am ende von string entfernen
 
Dafür hat mal ein schlauer Mensch die Variablen bzw. Konstanten erfunden :stupid:. Man könnte auch TStringlist in Verbindung mit DelimitedText oder CommaText verwenden, der Möglichkeiten gibt es viele.

Sir Rufo 1. Sep 2011 18:31

AW: komma am ende von string entfernen
 
Zitat:

Zitat von deddyh (Beitrag 1120994)
dafür hat mal ein schlauer mensch die variablen bzw. Konstanten erfunden :stupid:. Man könnte auch tstringlist in verbindung mit delimitedtext oder commatext verwenden, der möglichkeiten gibt es viele.

=> #10 ;)

DeddyH 1. Sep 2011 18:46

AW: komma am ende von string entfernen
 
Siehste :lol:


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