AGB  ·  Datenschutz  ·  Impressum  







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

String nach Komma löschen

Ein Thema von norbert3 · begonnen am 20. Jun 2006 · letzter Beitrag vom 21. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#11

Re: String nach Komma löschen

  Alt 21. Jun 2006, 11:33
Zitat von Hawkeye219:
Könnte man es nicht auch als Hinweis auf mögliche Probleme bei allen anderen Lösungen verstehen?
Welche denn? Du meinst wenn kein Kommata enthalten ist?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: String nach Komma löschen

  Alt 21. Jun 2006, 11:57
Entweder das oder ein Leerstring (bei CK_CK). Zugegeben, das sind Sonderfälle, aber man sollte sie berücksichtigen. Nur allzu oft findet man hier in der DP Quelltexte der Form

s := copy(s,1,pos(',',s)); oder ähnliches. Wenn man die Eingabedaten kennt und Fehler ausschließen kann, ist das kein Problem. Was aber, wenn später ein anderer (Newbie?) diesen kompakten Code übernimmt und auf seine eigenen Daten anwendet? Er wird möglicherweise nicht verstehen, daß er plötzlich Leerstrings erhält. marabus Code ist zwar nicht so kompakt, dafür ist er aber für jeden Anwender leicht nachvollziehbar.

@inherited
Obwohl ich es zunächst nicht geglaubt habe: dein Code funktioniert. Er nutzt aber (schamlos) aus, daß die VCL-Routine den String nicht verändert, wenn der Startindex nicht im zulässigen Bereich ist. Ich hätte erwartet, daß der Index korrigiert wird.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: String nach Komma löschen

  Alt 21. Jun 2006, 11:58
solange vorher geprüft wird, ob eines drin ist, nicht.

also das läuft und ist wohl auch am efektivsten (mit den Standrardroutinen):
Delphi-Quellcode:
i := Pos(',', s);
if i > 0 then SetLength(s, i - 1);
Dieses
Delete(s, pos(',', s), Length(s)); sollte zumindestens etwa so aussehn
Delphi-Quellcode:
if pos(',', s) > 0 then
  Delete(s, pos(',', s), Length(s));
//oder doch lieber so
i := pos(',', s);
if i > 0 then Delete(s, i, Length(s));
[add]
@Hawkeye219: das hätte ich jetut och nicht gedacht ._.
$2B or not $2B
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: String nach Komma löschen

  Alt 21. Jun 2006, 17:05
Moin Zusammen,

um sicherzustellen, dass tatsächlich der letzte Abschnitt hinter dem Komma entfernt wird, sollte man LastDelimiter verwenden.
(Falls nicht gesichert ist, dass nur ein Komma enthalten ist).

Delphi-Quellcode:
  s := 'Dies, ist, ein, Test';
  iPos := LastDelimiter(',',s);
  if iPos > 0 then SetLength(s,iPos-1);
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 10:23 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