Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Das letzte Zeichen eines Strings ermitteln (https://www.delphipraxis.net/25708-das-letzte-zeichen-eines-strings-ermitteln.html)

S2B 10. Jul 2004 23:48


Das letzte Zeichen eines Strings ermitteln
 
Mit diesem Code kann man das letzte Zeichen eines Strings ermitteln:
Delphi-Quellcode:
var s: String;
begin
  Label1.Caption:=copy(s,Length(s)-1,0);
end;
Das kann man z.B. dazu verwenden, um einen Pfad um ein fehlendes "\" am Schluss zu ergänzen:
Delphi-Quellcode:
if copy(s,Length(s)-1,0)<>'\' then s:=s + '\';
Edit: Ohne Worte! :mrgreen:

rantanplan99 11. Jul 2004 00:02

Re: Das letzte Zeichen eines Strings ermitteln
 
Ich muss dich korrigieren.

Zitat:

Delphi-Quellcode:
copy(s,Length(s)-1,0);

liefert IMMER einen leeren String zurück. Wenn muss es heissten
Delphi-Quellcode:
copy(s,Length(s)-1,[b]1[/b]);
und ausserdem gibt es die Funktion
Delphi-Quellcode:
RightStr
mit der das letzte Zeichen so ermittelt wird:
Delphi-Quellcode:
RightStr(s, 1);
womit dein Beispiel Code so aussieht:
Delphi-Quellcode:
if RightStr(s, 1)<>'\' then s:=s + '\';

Mirilin 11. Jul 2004 00:06

Re: Das letzte Zeichen eines Strings ermitteln
 
:hi:

Für Deine Anwendung :
Delphi-Quellcode:
function IncludeTrailingBackslash(const S: string): string;
Die Hilfe selbst
IncludeTrailingBackslash stellt sicher, daß ein Pfadname mit einem Begrenzungszeichen endet ('\'). Diese Funktion ist nur aus Gründen der Abwärtskompatibilität enthalten. In neuen Programmen sollte die Funktion IncludeTrailingPathDelimiter verwendet werden.


-> IncludeTrailingPathDelimiter :)


mfg Tobias

S2B 11. Jul 2004 00:14

Re: Das letzte Zeichen eines Strings ermitteln
 
Zitat:

Zitat von rantanplan99
Zitat:

Delphi-Quellcode:
copy(s,Length(s)-1,0);

liefert IMMER einen leeren String zurück. Wenn muss es heissten
Delphi-Quellcode:
copy(s,Length(s)-1,[b]1[/b]);

Ach so! Als ich nämlich einen String mit einem "\" am Schluss überprüft habe, dann kam bei
Delphi-Quellcode:
copy(s,Length(s)-1,1);
Der letzte Buchstabe des Ordners und nicht der "\". Irgendwie ist das komisch! Aber ich werde jetzt eine der beiden Varianten verwenden! :)

CalganX 11. Jul 2004 00:39

Re: Das letzte Zeichen eines Strings ermitteln
 
Hi,
Delphi-Quellcode:
sString[length(sString)]
ist auch noch eine Möglichkeit. ;)

Chris

SirThornberry 11. Jul 2004 09:52

Re: Das letzte Zeichen eines Strings ermitteln
 
@Chakotay1308: Bei deiner Variante musst du aber noch sicherstellen das es kein LeerString ist sonst knallts

CalganX 11. Jul 2004 12:56

Re: Das letzte Zeichen eines Strings ermitteln
 
Hi,
stimmt. Wenn ich dann aber schreibe
Delphi-Quellcode:
{Das ich hier zwei Abfragen habe, dient nur zur Verdeutlichung. Man sollte sich auf eines beschränken, alles andere wäre uneffektiv}
if (length(TempString) <> 0) or (TempString <> '') then
  LastChar := TempString[length(TempString)]
else
  LastChar := '';
Chris

DP-Maintenance 11. Jul 2004 12:57

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
Neu verfassen, wenn Du immer noch meinst, daß das wirklich einen Eintrag in die CL wert ist ;)

Christian Seehase 11. Jul 2004 16:28

Re: Das letzte Zeichen eines Strings ermitteln
 
Moin Zusammen,

und dann könnte man noch die Funktion AnsiLastChar benutzen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz