AGB  ·  Datenschutz  ·  Impressum  







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

Leerzeichen aus string löschen

Ein Thema von maximus Caesar · begonnen am 12. Mär 2006 · letzter Beitrag vom 14. Mär 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

Re: Leerzeichen aus string löschen

  Alt 12. Mär 2006, 11:24
Zitat:
Das mit a[1] dürfte eleganter sein als copy. Und das repeat würde ich durch ein while ersetzen.
Kann schon sein. Am besten ist ja eh trim.

Zitat:
Denn mal angenommen, am Anfang des Strings befindet sich kein Leerzeichen, dann würde trotzdem das erste Zeichen gelöscht werden. Besser noch: Folgender String: 'a b'

Bei deinem Code würde nur 'b' übrig bleiben.
Das stimmt. Aber maximus Caesar weiß ja, dass die ersten Zeichen immer Leerzeichen sind.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Leerzeichen aus string löschen

  Alt 12. Mär 2006, 11:25
Es ging nur um die allgemeine Verwendbarkeit.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#13

Re: Leerzeichen aus string löschen

  Alt 12. Mär 2006, 11:27
Zitat von 3_of_8:
Es ging nur um die allgemeine Verwendbarkeit.
Wenn das so ist ... Ne, ist ja schon richtig, was du sagst. Ich habe einfach nur den Code aus dem 1. Post etwas umgestellt.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Leerzeichen aus string löschen

  Alt 12. Mär 2006, 11:34
Zitat von Valle:
Merkwürdig,
in der Hiulfe habe ich nichts gefunden
Du weißt aber was gemeint war. Und alles weitere im Anhang.
Miniaturansicht angehängter Grafiken
trim_159.png  
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#15

Re: Leerzeichen aus string löschen

  Alt 12. Mär 2006, 12:05
Dein Fehler kam wahrscheinlich weil du nen Leerstring hattest und dann kann der nicht mehr auf das 1 Element zugreifen.

Delphi-Quellcode:
While Pos(' ',a) =1 do
delete(a,1,1)
das stürtzt dann nicht ab. wobei dein Trim Befehl schneller sein dürfte.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Leerzeichen aus string löschen

  Alt 13. Mär 2006, 10:55
Zitat von SirThornberry:
trim würde ich aus performancegründen vorziehen.
Würde ich auch mal sagen, wobei hier wohl TrimLeft viel besser wäre, da nur die Linken Leerzeichen gelöscht werden



Zitat:
Code:
[color=#000080][b]repeat[/b][/color]
  delete(a,[color=#ff0000][b]0[/b][/color],1);
[color=#000080][b]until[/b][/color] a[1]<>' ';
Du weißt aber, das das erste Zeichen im String auf Position 1 ist?

Außerdem wird das erste Zeichen immer gelöscht, selbst wenn es kein Leerzeichen ist

also erst Prüfen was für ein Zeichen und dann löschen
Delphi-Quellcode:
While a[1] = ' do
  delete(a,1,1);
Da ja explizit auf das Erste Zeichen zugegriffen wird, sollte auch noch eine Abfrage drin sein, welche nachsieht, ob überhaupt ein Zeichen im string ist...
Delphi-Quellcode:
while (a <> '') and (a[1] = ' ') do
  delete(a,1,1);
Wärend TrimLeft das in etwa so macht, also erstmal nachsehn wieviel Leerzeichen drin sind und erst dann diese löschen, somit wird nur einmal gelöscht, also der zeitaufwendigere Prozess einer Stringmanipulation so wenig wie möglich ausgeführt.
Delphi-Quellcode:
if a <> 'then begin
  i := 1
  while a[i] = ' do
    inc(i);
  delete(a, 1, i - 1);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von JWeis
JWeis

Registriert seit: 23. Aug 2005
Ort: Homburg
274 Beiträge
 
Delphi 7 Professional
 
#17

Re: Leerzeichen aus string löschen

  Alt 13. Mär 2006, 11:01
wie wärs wenn du einfach StringReplace benutzenwürdest.


stringvar:= StringReplace(stringvar, ' ', '',[rfReplaceAll]); [edit] sorry ich hab vergessen alles zu lesen. du willst ja nur die lerzeichen am anfang entfernen. [/edit]
Johannes
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#18

Re: Leerzeichen aus string löschen

  Alt 13. Mär 2006, 15:27
@himitsu

Zitat:
Delphi-Quellcode:
while (a <> '') and (a[1] = ' ') do
  delete(a,1,1);
Deser Code Verhindert den Fehler aber nicht. Da zumindest der d5 Compiler beide Argumente auswertet und wenn a = '' ist bringt er dann trotzdem ne Exception.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Leerzeichen aus string löschen

  Alt 14. Mär 2006, 11:14
Zitat von Corpsman:
Deser Code Verhindert den Fehler aber nicht. Da zumindest der d5 Compiler beide Argumente auswertet und wenn a = '' ist bringt er dann trotzdem ne Exception.
Bist du sicher?
Also in meinem D4 hab ich noch keine Exception bei sowas bekommen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#20

Re: Leerzeichen aus string löschen

  Alt 14. Mär 2006, 11:26
Der Compiler richtet sich nach der Einstellung für die Boolesche Kurzauswertung. {$B-} oder {$BOOLEVAL OFF} veranlasst ihn die Auswertung von Ausdrücken vorzeitig abzubrechen, wenn das Ergebnis bereits feststeht.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:45 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