Entwickler-Ecke
Sonstiges (Delphi) - Letzten 3 Buchstaben herrausschneiden !
Jagg - Do 18.07.02 16:26
Titel: Letzten 3 Buchstaben herrausschneiden !
Hallo !
ich habe eine Datei "Test.dbf",die angzeigt wird !
Wie mache ich,das nur noch "Test" angezeigt wird ?
Jagg !
Delete - Do 18.07.02 16:30
Ich schlage spontan "ChangeFileExt" vor. :wink:
Bitte die Hilfe referieren - ist nämlich sehr einfach!
Tino - Do 18.07.02 16:33
Ich denke mal Du willst nur den Dateinamen ohne die Extension haben, oder? Die Funktion ExtractFilename kennst du ja (hast in einem anderen Posting jedenfalls mal gepostet). Dann schau mal in der Hilfe unter dem Begriff ExtractFilename nach. Dort findest Du einen Link zu der Kategorie Dateizugriff und dort findest Du bestimmt eine Funktion die genau das macht was Du suchst :D
Gruß
hitstec - Do 18.07.02 17:42
Etwa so:
Quelltext
1: 2:
| sFile:='c:\datei.dbf'; sFileName:=Copy(ExtractFileName(sFile),0,Pos(LowerCase(ExtractFileExt(sFile)),LowerCase(ExtractFileName(sFile)))-1); |
DennisB - Do 18.07.02 17:48
Hi
Es geht auch so:
Quelltext
1:
| copy(x,1,pos('.',x)-1) |
X ist dann das String, wo was wech soll.
Der befehl Copy Kopiert nur teile eines Strings.
Hier fängt er mit dem 1. Buchstaben an und hört mit dem Buchstaben vor dem "." auf.
Grüße
DennisB
hitstec - Do 18.07.02 17:52
Pech nur, wenn der Name der datei so heißt: "datei.blabla.dbf" :shock:
Dann musst du höchstens von hinten anfangen nach dem Punkt zu suchen.
Zitat: |
copy(x,1,pos('.',x)-1
|
Da fehlt eine Klammer:
Quelltext
1:
| copy(x,1,pos('.',x)-1) |
Jagg - Do 18.07.02 18:40
ich danke euch für eure zahlreichen antworten
Weitere Fragen und Themen folgen !
:-)))))))))))))))
b.brecht - Do 18.07.02 22:21
ist extract filename nicht einfacher?
Quelltext
1:
| datei:=ExtractFileName(datei); |
hitstec - Do 18.07.02 22:26
Lies dir doch bitte nochmal den ersten Posting genau durch. :shock:
b.brecht - Do 18.07.02 22:29
Deinen, wozu mit copy?
hitstec - Do 18.07.02 22:34
Also gut: Bei der Frage hier geht es darum den Namen einer Datei ohne Extension herauszufinden. ExtractFileName liefert aber den Dateinamen+Extension.
Deshalb muss man die Extension herausfiltern, so wie diese Funktion es macht:
Quelltext
1: 2:
| sFile:='c:\datei.dbf'; sFileName:=Copy(ExtractFileName(sFile),0,Pos(LowerCase(ExtractFileExt(sFile)),LowerCase(ExtractFileName(sFile)))-1); |
b.brecht - Do 18.07.02 22:37
ok
hitstec - Do 18.07.02 22:39
:wink:
catweasel - Fr 19.07.02 03:26
Titel: Und noch ein paar...
Hi,
das sind ja schon ne menge möglichkeiten (und da sage einer mal das delphi nicht vielseitig sei...) 8)
Ich hab auch noch ein paar Möglichkeiten:
mal gucken wieviel wir zusammenkriegen.... :wink:
Quelltext
1: 2: 3: 4: 5:
| var langname, kurzbame : string; begin ansireplacestr(langname,'.dbf',''); end; |
oder noch eine:
Quelltext
1: 2: 3: 4: 5:
| var name :string; begin name := delete(name,ansipos(langname,'dbf'),4); end; |
CU
Catweasel :D
DennisB - Fr 19.07.02 07:44
Hi
Also wenn es IMMER drei Buchstaben sind würde auch folgendes gehen:copy(path,1,length(path)-4)
Grüße
Denni
PS ich bin ein großer freund der COPY funktion...
Jagg - Fr 19.07.02 08:23
Hey Leute !
Mein Code :
Quelltext
1: 2:
| ComboBox1.Items.Add(SearchRec.Name); copy(x,1,pos('.',x)-1) |
SearchRec.Name = DateiName !
Nach dieser Ausführung klappt es nicht,ich habe auch x als string deklariert,was muss ich noch machen ???
PS : Muss ich vllt 'x := SearchRec.Name' machen ???
Jagg - Fr 19.07.02 08:38
Ich habe es jetzt
Code :
Quelltext
1: 2:
| SearchRec.Name := copy(SearchRec.Name,1,pos('.',SearchRec.Name)-1); ComboBox1.Items.Add(SearchRec.Name); |
Trotzdem Danke für eure Bemühungen !
Jagg !
PS : Seht euch bitte das an,vllt könnt Ihr mir das auch helfen :
http://www.auq.de/viewtopic.php?t=786
Delete - Fr 19.07.02 08:48
DennisB hat folgendes geschrieben: |
Also wenn es IMMER drei Buchstaben sind würde auch folgendes gehen |
Möglich, dass Jagg das in diesem Fall vielleicht reichen würde. Sobald er aber die Funktion in einem anderen Programm ein weiteres Mal benötigt, steht er vor dem Problem, wieder ändern zu müssen. Da wäre es besser, von Anfang an so universell zu arbeiten, dass man den Code immer wieder verwenden kann und evtl. nur minimal anpassen muss.
MathiasSimmack hat folgendes geschrieben: |
Ich schlage spontan "ChangeFileExt" vor. |
Was passiert in diesem Fall:
Quelltext
1:
| ShowMessage(ChangeFileExt('Test.dbf','')); |
:?:
Diese Delphi-Funktion hat den Vorteil, dass sie auch bei mehreren Punkten, wie etwa in
den letzten Part verschwinden lässt.
Bei einem Dateinamen versagen bisher aber
alle Funktionen, inkl. "ChangeFileExt" - wenn der nämlich mit einem Punkt beginnt, so wie die versteckten Systemdateien von Linux. Da liefern alle Funktionen gar nichts zurück :wink: - aber das würde ich nicht als Fehler ansehen, denn solche Dateinamen sind unter Windows ja auch nicht gebräuchlich.
Jagg - Fr 19.07.02 08:58
Ok,danke,werd ich mir merken :-))))))))))))))
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!