Autor |
Beitrag |
Jagg
Beiträge: 635
|
Verfasst: Do 18.07.02 16:26
Hallo !
ich habe eine Datei "Test.dbf",die angzeigt wird !
Wie mache ich,das nur noch "Test" angezeigt wird ?
Jagg !
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 18.07.02 16:30
Ich schlage spontan "ChangeFileExt" vor.
Bitte die Hilfe referieren - ist nämlich sehr einfach!
|
|
Tino
Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: 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
Gruß
|
|
hitstec
Beiträge: 295
|
Verfasst: 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); |
Zuletzt bearbeitet von hitstec am Do 18.07.02 17:54, insgesamt 1-mal bearbeitet
|
|
DennisB
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
_________________ Gutes Wetter = gute Laune. Nach meiner Laune muss das Wetter also gut sein...
Zuletzt bearbeitet von DennisB am Do 18.07.02 18:26, insgesamt 1-mal bearbeitet
|
|
hitstec
Beiträge: 295
|
Verfasst: Do 18.07.02 17:52
Pech nur, wenn der Name der datei so heißt: "datei.blabla.dbf"
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
Beiträge: 635
|
Verfasst: Do 18.07.02 18:40
ich danke euch für eure zahlreichen antworten
Weitere Fragen und Themen folgen !
))))))))))))))
|
|
b.brecht
Beiträge: 81
|
Verfasst: Do 18.07.02 22:21
ist extract filename nicht einfacher?
Quelltext 1:
| datei:=ExtractFileName(datei); |
|
|
hitstec
Beiträge: 295
|
Verfasst: Do 18.07.02 22:26
Lies dir doch bitte nochmal den ersten Posting genau durch.
|
|
b.brecht
Beiträge: 81
|
Verfasst: Do 18.07.02 22:29
|
|
hitstec
Beiträge: 295
|
Verfasst: 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
Beiträge: 81
|
Verfasst: Do 18.07.02 22:37
|
|
hitstec
Beiträge: 295
|
Verfasst: Do 18.07.02 22:39
|
|
catweasel
Beiträge: 487
Erhaltene Danke: 1
Win 7 64bit
Delphi 7 Second Sedition V7.2
|
Verfasst: 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...)
Ich hab auch noch ein paar Möglichkeiten:
mal gucken wieviel wir zusammenkriegen....
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
|
|
DennisB
Hält's aus hier
Beiträge: 14
|
Verfasst: 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...
_________________ Gutes Wetter = gute Laune. Nach meiner Laune muss das Wetter also gut sein...
|
|
Jagg
Beiträge: 635
|
Verfasst: 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
Beiträge: 635
|
Verfasst: 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 :
www.auq.de/viewtopic.php?t=786
|
|
Jagg
Beiträge: 635
|
Verfasst: Fr 19.07.02 08:44
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
Quelltext
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 - aber das würde ich nicht als Fehler ansehen, denn solche Dateinamen sind unter Windows ja auch nicht gebräuchlich.
|
|
Jagg
Beiträge: 635
|
Verfasst: Fr 19.07.02 08:58
Ok,danke,werd ich mir merken )))))))))))))
|
|