Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateiname ohne Endung (https://www.delphipraxis.net/93166-dateiname-ohne-endung.html)

danku 1. Jun 2007 16:04


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. ;(

shmia 1. Jun 2007 16:09

Re: Dateiname ohne Endung
 
Delphi-Quellcode:
function ohne_erweiterung(const dateiname:string):string;
begin
   Result := ChangeFileExt(dateiname, '');
end;

danku 1. Jun 2007 16:40

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:
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;
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

shmia 1. Jun 2007 17:54

Re: Dateiname ohne Endung
 
Delphi-Quellcode:
//if length(ExtractFileName(opendiag.FileName[i])) >35 then // Falsch
if length(ExtractFileName(opendiag.Files[i])) >35 then // Besser

danku 2. Jun 2007 16:35

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);

danku 3. Jun 2007 11:11

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 21:09 Uhr.

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