Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einen String "verkleinern" (https://www.delphipraxis.net/70534-einen-string-verkleinern.html)

qb-tim 31. Mai 2006 15:25


Einen String "verkleinern"
 
Hi,

ich weiß, dass schon mehrere Fragen zum Thema Copy und Pos gestellt wurden aber in keiner fand ich was ich richtig brauchte...

Ich habe in einem meiner Programme eine Searchlist der Dateien eines Ordners von dem ich weiß, dass er nur *.txt Dateien enthält (also: nicht einmal Ordner), weil sie von meinem Programm erstellt wurden.

Diese Searchlist wird dann in eine ListBox geladen und da kommt mein Problem:

Die Searchlist enthält die Dateinamen inklusive .txt - Dies will ich aus der String entfernen.

Da ich aber nicht weiß wie lange der eigentliche Dateiname ist, weiß ich nicht wie ich Copy oder Pos anwenden soll um die letzten vier Zeichen eines Strings zu entfernen.

Klaus01 31. Mai 2006 15:28

Re: Einen String "verkleinern"
 
schau Dir mal die Prozedur
Delphi-Quellcode:
ChangeFileExt(const FileName, Extension: string): string;
an
hier kannst Du als Extension auch '' eingeben, damit ist die Extension weg.


Ansonsten mit delete arbeiten. length bekommst Du die Stringlänge.
Delphi-Quellcode:
procedure Delete(var S: string; Index, Count:Integer);
delete(AString,length(AString)-4,4)

Grüße
Klaus

mkinzler 31. Mai 2006 15:30

Re: Einen String "verkleinern"
 
Delphi-Quellcode:
setLength( s, Length( s)-1);

qb-tim 31. Mai 2006 15:40

Re: Einen String "verkleinern"
 
Ihr habt mich auf folgendes gebracht:

Delphi-Quellcode:
// Dateiname := '*.txt'
// ich möchte DateiName ohne '.txt'
DateiName := Copy(Dateiname, 1, length(DateiName)-4);

DevilsCamp 31. Mai 2006 15:41

Re: Einen String "verkleinern"
 
Zitat:

Zitat von Klaus01
Ansonsten mit delete arbeiten. length bekommst Du die Stringlänge.
Delphi-Quellcode:
procedure Delete(var S: string; Index, Count:Integer);
delete(AString,length(AString)-4,4)

Grüße
Klaus

Falsch.

Um die letzten 4 Zeichen eines Strings zu löschen, benötigst du folgenden Code:
Delphi-Quellcode:
Delete(s, Length(s)-3, 4);

Klaus01 31. Mai 2006 16:21

Re: Einen String "verkleinern"
 
@MArc,

danke, passiert mir immer wieder :o(

Grüße
Klaus

Vjay 1. Jun 2006 14:46

Re: Einen String "verkleinern"
 
Warum macht ihr euch da überhaupt einen Kopp?

Macht doch:

Delphi-Quellcode:
Delete(s, pos('.', s), length(s));
length(s) geht, da delete die Länge des Strings eh überprüft.

Hawkeye219 1. Jun 2006 15:03

Re: Einen String "verkleinern"
 
@Vjay
Delphi-Quellcode:
Filename := 'Dies.ist.nur.ein.Beispiel.txt';
Die einfachste und sauberste Lösung hat Klaus01 mit ChangeFileExt beschrieben.

Gruß Hawkeye

Vjay 1. Jun 2006 15:24

Re: Einen String "verkleinern"
 
Ging mir eigentlich auch mehr um die Verwendung von delete ansich.

guste 2. Jun 2006 16:12

Re: Einen String "verkleinern"
 
Delphi-Quellcode:
ListBox .Text := StringReplace(ListBox.Text,'.txt','',[rfReplaceAll])
Das würde auch gehen. ChangeFileExt wäre aber mein Favorit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Seite 1 von 2  1 2      

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