AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiname ohne Endung

Ein Thema von danku · begonnen am 1. Jun 2007 · letzter Beitrag vom 3. Jun 2007
Antwort Antwort
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#1

Dateiname ohne Endung

  Alt 1. Jun 2007, 16:04
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. ;(
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Dateiname ohne Endung

  Alt 1. Jun 2007, 16:09
Delphi-Quellcode:
function ohne_erweiterung(const dateiname:string):string;
begin
   Result := ChangeFileExt(dateiname, '');
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Dateiname ohne Endung

  Alt 1. Jun 2007, 16:40
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Dateiname ohne Endung

  Alt 1. Jun 2007, 17:54
Delphi-Quellcode:
//if length(ExtractFileName(opendiag.FileName[i])) >35 then // Falsch
if length(ExtractFileName(opendiag.Files[i])) >35 then // Besser
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Dateiname ohne Endung

  Alt 2. Jun 2007, 16:35
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);
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Dateiname ohne Endung

  Alt 3. Jun 2007, 11:11
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?

Legende zum Bild:
1. Spalte : die wirklich geöffneten Dateien
2. Spalte : so hat es eigentlich auszusehen
3. Spalte : Dateigröße
Miniaturansicht angehängter Grafiken
screeny_135.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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