Entwickler-Ecke

Dateizugriff - Dateierweiterung abschneiden


Chatfix - So 10.11.02 19:57
Titel: Dateierweiterung abschneiden
wie kann ich aus einem string der einen dateinamen enthält die erweiterung des dateinamen abschneiden (inklusive Punkt)


bis11 - So 10.11.02 20:31

Hi,

wie wäre es denn damit ?


Quelltext
1:
  Delete(meinstring,Length(meinstring) , 1)                    


Die eins ersetzt Du durch 4 und es werden immer die letzten 4 Zeichen des Strings abgeschnitten.


Chatfix - So 10.11.02 20:35

wie wäre es damit?

es gibt auch erweiterungen mit 4 buchstaben z.B. html oder jpeg..

dann müste ich dort eine 5 hinschreiben, aber woher weiss ich wie lang die erweiterung is...

ich könnt auch ne schleife rückwärts bis zum ersten punkt machen, aber eigentlich wollt ich wissen obs dafür nicht schon was fertiges gibt


Delete - So 10.11.02 20:49

Ja, ChangeFileExt - s. Hilfe.
Als Endung gibst du eben nur einen Leerstring an.

Bleibt immer noch das "Problem" mit Dateien wie

Quelltext
1:
AnnaKournikova.jpg.vbs                    

:wink:

In solchen Fällen wird eben nur die jeweils letzte Endung entfernt.


Chatfix - So 10.11.02 20:53

achja das könnte klappen...

solche doppelendungen interessieren nciht *gg* weil diese ohne hin nicht angezeigt werden...

thx


Chatfix - So 10.11.02 20:56

also es funzt nicht...

hab das jetz so:


Quelltext
1:
2:
3:
n:=FindRec.Name;
        ChangeFileExt(n,'');
        form1.listbox1.items.Add(n);


Tino - Mo 11.11.02 00:33

Chatfix hat folgendes geschrieben:
also es funzt nicht...

Hast Du Dir mal die Hilfe zu der Funktion ChangeFileExt angeschaut? Eigentlich habe ich das Wichtige jetzt schon gesagt: Es handelt sich dabei um eine Funktion. Das heißt das diese Funktion einen Wert zurückliefert. Und jetzt rate mal welchen :-D

Gruß
TINO


Chatfix - Mo 11.11.02 22:05

achja sorry.. thx trotzdem....

manchmal bin ich froh das es euch gibt *g*


Amarradi - Di 12.11.02 23:30
Titel: Abschitt
Hallo
Nein im Delphi gibts da leider keine komponente zum Erweiterung löschen, aber im Pascal gibt es eine Procedure die nennt sich fsplit. Damit kann man den String in seine 3 Bestandteile zerlegen.
1. Laufwerk
2. Pfad
3. Erweiterung
da wäre das kein Problem.
Du musst wohl oder über eine for-schleife nach der länge des Strings rückwärts durchlaufen. Und jede Position des Strings mit dem punkt vergleichen. und löschen. Du musst die Position um eins vermindern da der Punkt nicht gelöscht werden soll.

MfG Amarradi


Delete - Di 12.11.02 23:39

Die Lösung wurde doch schon gepostet.


Chatfix - Mi 13.11.02 17:56

Chatfix hat folgendes geschrieben:
ich könnt auch ne schleife rückwärts bis zum ersten punkt machen, aber eigentlich wollt ich wissen obs dafür nicht schon was fertiges gibt


aber trotzdem danke *gg*


hitstec - Mi 13.11.02 20:37

Mehrere Lösungen sind immer gut - da hat man die Auswahl.
:eyecrazy: