Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - String rückwärts durchgehen?
Robii - Di 16.06.09 14:32
Titel: String rückwärts durchgehen?
Hey, wie kann ich einen String rückwärts durchgehen, d.h. hinten Anfangen und alles bis zum 1. / in einem neuen String speichern ? Gruß
Gausi - Di 16.06.09 14:35
Delphi-Quelltext
1: 2:
| for i := length(myString) downto 1 do |
Robii - Di 16.06.09 14:45
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var i: Integer; Pla,Dnu: String; begin for i := length(Pla) downto 1 do If Pla[i] <> '\' then DNU := DNU+Pla[i]; end; |
Das ist mein Code. Aber jetzt habe ich ja die Zeichen im String DNU genau umgekehrt.
Wie ann ich das denn verhindern?
Gruß
Delete - Di 16.06.09 14:49
Delphi-Quelltext
1:
| If Pla[i] <> '\' then DNU := Pla[i] + DNU; |
Kann man drauf kommen, oder?
Robert.Wachtel - Di 16.06.09 15:01
LastDelimiter existiert... ;)
Damit wird's zum Einzeiler.
Delete - Di 16.06.09 15:06
Es gibt immer mehrere Wege, aber mir ging es jetzt mehr um das Verständnis ;)
Robii - Di 16.06.09 15:22
Stimmt. Peinlich, sorry. Danke nochmal.
Gruß
Xentar - Di 16.06.09 15:30
Man könnte auch einen StringReplace '\' -> '' versuchen
Robert.Wachtel - Di 16.06.09 15:35
Xentar hat folgendes geschrieben : |
| Man könnte auch einen StringReplace '\' -> '' versuchen |
Na, das würde mich aber mal interessieren... :mrgreen:
Delete - Di 16.06.09 16:16
Mich auch *g*
Robii - Di 16.06.09 16:21
Mich auch, bin für alles, was ich lernen kann dankbar.
Delete - Di 16.06.09 16:29
Geht es eigentlich um Dateinamen, oder hat der Backslash eine andere Bedeutung? Falls Ersteres, versuch es mal mit ExtractFileName.
Robii - Di 16.06.09 16:35
Hab es ja mittlerweile gelöst. Ich wollte den Dateinamen aus einem kompletten Pfad herausfiltern, wobei beides jeweils in Strings abgelegt war. Gruß.
Robert.Wachtel - Di 16.06.09 16:37
Robii hat folgendes geschrieben : |
| Hab es ja mittlerweile gelöst. Ich wollte den Dateinamen aus einem kompletten Pfad herausfiltern, wobei beides jeweils in Strings abgelegt war. Gruß. |
Was mal wieder zeigt, dass man ruhig auch mal die eigentliche Problemstellung darlegen darf...
Xentar - Di 16.06.09 16:40
Na toll, das kommt davon, wenn man nur den Code liest, und nicht die eigentliche Frage :autsch:
Der Code hier
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var i: Integer; Pla,Dnu: String; begin for i := length(Pla) downto 1 do If Pla[i] <> '\' then DNU := Pla[i] + DNU; end; |
macht doch im Moment nichts anderes als
Delphi-Quelltext
1:
| Dnu := StringReplace(Pla, '\', ''); |
da es keine weitere Abbruchbedingung gibt.
Hab nun aber nachträglich gelesen, dass nur bis zum ersten Vorkommen gearbeitet werden soll - die Abbruchbedingung fehlte im Code, somit ist meine Antwort auch hinfällig *g*
Dafür schmeiß ich nun mal
ExtractFileName(); in den Raum
Robii - Di 16.06.09 17:23
Auch die Abbruch Bedinung habe ich schon selbst hinugefügt. Einfach
Delphi-Quelltext
1:
| If Pla[i] = '\' then break; |
Und schon bin ich am Ziel.
Gruß.
Delete - Di 16.06.09 17:59
ExtractFileName hatten wir schon :P
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!