Autor |
Beitrag |
Danny W.
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 29.11.06 10:49
Hallo,
ich habe hier einen String..sagen wir mal:
Quelltext
davon möchte ich jetzt gerne die Leerzeichen entfernen. Zuerst habe ich es mit Pos und Delete gemacht. Allerdings bin ich dann auf die Funktion "Trim" gestoßen...allerdings ersetzt er bei mir nur die ersten und letzten leerstellen (was ja auch laut Delphi Hilfe so sein soll^^)
Gibt es jetzt noch eine alternative um jedes Leerzeichen zu löschen?
liebe Grüße,
Danny
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
oldmax
      
Beiträge: 380
D3 Prof, D4 Prof
|
Verfasst: Mi 29.11.06 11:06
Hi
Ich könnte mir mehrere Vorgehensweisen vorstellen, die ich dann in eine Function packe.
Z.B.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Function TMyForm.Leerweg(Quelle: String):String; Var i : Integer; Ziel : String; Begin Ziel:=''; For i:=1 to Length(Quelle) do if Quelle[i] <>' ' then Ziel:=Ziel+Quelle[i]; Result:=Ziel; end; |
Natürlich geht auch delete und Pos an dieser Stelle, aber du wirst nicht drum herum kommen, irgendwie jedes einzelne Zeichen zu prüfen. Machen übrigends eingebaute Functions nicht anders, vielleicht in einer anderen Sprache, aber auch wenn du direkt mit ASM auf den Speicher zugreifst, musst du Byte für Byte prüfen und das Ergebnis irgendwohin schreiben.
Gruß oldmax
_________________ Zier dich nich so, ich krieg dich schon....
|
|
Danny W. 
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 29.11.06 11:11
das funktioniert super =) vielen dank
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
iKilledKenny
      
Beiträge: 394
Erhaltene Danke: 8
Win XP
D5 Prof, C# Express 2005
|
Verfasst: Mi 29.11.06 11:18
das sollte auch einfacher gehen:
Delphi-Quelltext 1:
| sTxt := StringReplace (sTxt, #32, '', [rfReplaceAll]); |
grüße
alex
|
|
Danny W. 
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 29.11.06 11:21
acuh eine schöne Lösung =)
aber die Idee mit der function war nicht schlecht..so kann ich das auch häufiger verwenden..Danke euch beiden
liebe Grüße,
Danny
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 29.11.06 11:54
Dann baue aber bitte noch eine Prüfung ein. Falls "Quelle" mal ein Leerstring ist, könnte es sonst zu Problemen kommen.
|
|
Danny W. 
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 29.11.06 12:01
wäre schon sinnvoll, allerdings kann das definitiv nicht vorkommen! Da ich nur die Leerzeichen aus Dateinamen entfernen möchte..diese haben ja noch mindestens eine Endung, sonst werden sie garnicht erst gelesen
mfG
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 29.11.06 12:05
Das kann nur bei Deinem jetzigen Einsatz nicht vorkommen (wirklich nicht?). Wenn Du die Funktion mal woanders benötigst, denkst Du vielleicht nicht mehr daran und verlässt Dich darauf, dass sie einwandfrei funktioniert.
Aber Du musste es natürlich nicht machen... 
|
|
Danny W. 
      
Beiträge: 296
Windows XP, WIN 2000
Delphi 2005 PE
|
Verfasst: Mi 29.11.06 12:18
Hauptsache ein schlechtes gewissen einreden  *implementier*
so..jetz habe ich die abfrage mit drinne + auskommentiert usw. ^^
Danke nochmal an alle
_________________ "Ich find den Fehler nicht. Der Artist wird immer als "Syntax Error" gezeigt  "
"Ach verdammt, der Artist heißt wirklich "Syntax Error" xD"
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mi 29.11.06 12:37
Hallo!
Wieso soll die Funktion nicht arbeiten, wenn Quelle leer ist? Die For-Schleife wird bei einem leeren String doch gar nicht angegangen...
Cu,
Udontknow
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 29.11.06 12:59
Hallo Andreas,
habe ich gerade mal geprüft. Du hast Recht.
Aber war das früher nicht mal so, dass eine For-Schleife mindestens einmal durchlaufen wird?
Gruß,
Peter
|
|
Pille
      
Beiträge: 105
Windows 7
DelphiXE Prof.
|
Verfasst: Mi 29.11.06 13:23
jasocul hat folgendes geschrieben: |
Aber war das früher nicht mal so, dass eine For-Schleife mindestens einmal durchlaufen wird?
|
Ich denke, nur dann, wenn der 2 Parameter wenigestens so groß ist wie der erste.
Delphi-Quelltext
wird dann nicht durchlaufen, da die Bedingung schon zuvor erfüllt ist.
mfg Pille
|
|