![]() |
Dateiname ohne Endung
Hi ihr ;)
Ich lade über einen TOpendialog i Dateien in eine Stringgrid. Sobald der Dateiname größer als eine bestimmte Anzahl Zeichen ist (in meinem Bsp. 26) dann soll der Dateiname "gekürzt" werden, d.h. es sollen 2 Punkte gesetzt werden und die Endung noch hinzugefügt werden. Bsp: Dateiname über Opendialog: testtesttestestestestesteste.mp3 Neuer Dateiname: testtesttestestestestestest..mp3 Praktisch habe ich es so versucht:
Delphi-Quellcode:
function ohne_erweiterung(dateiname:string):string; var endung:string; begin endung := ExtractFileExt(dateiname); //string dateiname, von Punkt ab bis Endung löschen Delete(dateiname,Pos('.', dateiname),length(endung)); end; ///jetzt wird der opendialog aktiviert//// if length(ExtractFileName(opendiag.FileName)) >35 then begin //BSP-Datei: testxxxx.mp3 MyFilesExtension := ExtractFileExt(opendiag.FileName); AlterDateiname:= ExtractFileName(ohne_erweiterung(opendiag.FileName)); //lösche die Length(Dateinamen)-26 -> Variable speichern // Delete(AlterDateiname, 26, length(AlterDateiname)-26); showmessage(ohne_erweiterung(NeuerDateiname)); NeuerDateiname := AlterDateiname + '..' + MyFilesExtension; das problem ist bloß dass in der messagebox nix erscheint. ;( |
Re: Dateiname ohne Endung
Delphi-Quellcode:
function ohne_erweiterung(const dateiname:string):string;
begin Result := ChangeFileExt(dateiname, ''); end; |
Re: Dateiname ohne Endung
hehe oh ja. return wollte der mir als rückgabewert nicht nehmen ;)
es geht erst mal, vielleicht entpuppt sich doch noch ein neuer bug.. oh ja..
Delphi-Quellcode:
so funzt das erst mal. nur wie bekomm ich das noch hin das der in die erste spalte wirklich auch nur den i-werte hineinschreibt und nicht immer den gleichen
for i:=0 to opendiag.files.count -1 do
begin if length(ExtractFileName(opendiag.FileName[i])) >35 then begin MyFilesExtension := ExtractFileExt(opendiag.FileName); AlterDateiname:= ExtractFileName(ohne_erweiterung(opendiag.FileName)); NeuerDateiname := AlterDateiname + '..' + MyFilesExtension; end else NeuerDateiname:= ExtractFileName(opendiag.FileName); //i-Werte in StringGrid sender.cells[0,1+i]:= NeuerDateiname; //ExtractFileName(opendiag.Files[i]); sender.cells[1,1+i]:= Extractfilename(opendiag.Files[i]); sender.cells[2,1+i]:= floattostr(FileSize (opendiag.Files.Strings[i]) div 1024); end; |
Re: Dateiname ohne Endung
Delphi-Quellcode:
//if length(ExtractFileName(opendiag.FileName[i])) >35 then // Falsch
if length(ExtractFileName(opendiag.Files[i])) >35 then // Besser |
Re: Dateiname ohne Endung
wo muss ich noch ein end; hinsetzen damit alle files[i] geöffnet werden und nicht nur das 1. n-mal?
Delphi-Quellcode:
for i:=0 to opendiag.files.count -1 do
begin // if length(ExtractFileName(opendiag.FileName[i])) >35 then if length(ExtractFileName(opendiag.Files[i])) >33 then begin //Endung FilesExtension := ExtractFileExt(opendiag.Files[i]); //Dateiname ohne Endung AlterDateiname:= ExtractFileName(ohne_erweiterung(opendiag.Files[i])); //Name ab Position 28 kürzen Delete(AlterDateiname,28,length(AlterDateiname)); //Neuer Dateiname NeuerDateiname:= AlterDateiname + '..' + FilesExtension; showmessage(NeuerDateiname); |
Re: Dateiname ohne Endung
Liste der Anhänge anzeigen (Anzahl: 1)
wer findet den fehler:
ich öffne x-dateien (siehe screen) und als ergebnis wird rechts in die 1.spalte geöffnet. nur warum sind nicht alle drin, sondern redundante? :gruebel: Legende zum Bild: 1. Spalte : die wirklich geöffneten Dateien 2. Spalte : so hat es eigentlich auszusehen 3. Spalte : Dateigröße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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