Avatar billede huggebanden Nybegynder
09. januar 2003 - 18:19 Der er 7 kommentarer og
1 løsning

Rename

var
  sr: TSearchRec;
  navn: string;

begin
if FindFirst('e:\testmappe\*.mp3', 0, sr) = 0 then
  begin
    repeat
      begin
        navn := copy(sr.Name,1,length(sr.Name)-4);
        RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3');
      end;
    until FindNext(sr) <> 0;
  FindClose(sr);
  end;
end;

Hvordan laver man et program der går ind og omdøber alle filer i en mappe til filnavn - en fil.mp3 jeg har prøvet mig lidt frem men det virker ikke helt
Avatar billede dkn Nybegynder
09. januar 2003 - 20:30 #1
prøv med:

var
  sr: TSearchRec;
  navn: string;
begin
if FindFirst('e:\testmappe\*.*', 0, sr) = 0 then
  begin
    repeat
      begin
        navn := changefileext(sr.Name, '');
        RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3');
      end;
    until FindNext(sr) <> 0;
  FindClose(sr);
  end;
end;
Avatar billede hreiff Nybegynder
10. januar 2003 - 08:03 #2
prøv med

if FindFirst('e:\testmappe\*.*', faAnyFile, sr) = 0 then
Avatar billede hreiff Nybegynder
10. januar 2003 - 08:27 #3
Her: (retter alle filer med .mp3 til .mp4)

procedure TForm1.Button1Click(Sender: TObject);
var
  s : TSearchRec;
  path,ext,z:string;

begin
  path := 'e:\testmappe\';
  ext := '.mp3';
  if FindFirst(path+'*'+ext, faAnyFile, s) = 0 then
  repeat
    z := copy(s.Name,1,length(s.Name)-length(ext));  {fjerner extension}
    RenameFile(path+s.Name, path+z+'.mp4');
  until FindNext(s) <> 0;
end;
Avatar billede huggebanden Nybegynder
10. januar 2003 - 20:34 #4
jeg har prøvet jeres koder, de gør det samme som min. Nogen af filerne omdøber den flere gange sådan at hvis der er en fil der hedder "hej" så bliver den omdøbt til "hej - en fil - en fil.mp3" noget i den stil :)
Avatar billede dkn Nybegynder
10. januar 2003 - 22:12 #5
okay dette kode er testet og virker:

var
  sr: TSearchRec;
  navn: string;
  I: Integer;
begin
  I := FindFirst('e:\testmappe\*.*', faAnyFile, sr);

  while I = 0 do
  begin
    navn := changefileext(sr.Name, '');
    RenameFile('e:\testmappe\'+sr.Name, 'e:\testmappe\'+navn+' - en fil.mp3');
    I := FindNext(sr);
  end;
  FindClose(sr);
end;
Avatar billede huggebanden Nybegynder
11. januar 2003 - 11:15 #6
når jeg tester den med en mappe med 4 filer i så er der samme problem som før
Avatar billede hreiff Nybegynder
12. januar 2003 - 20:12 #7
Det at den bliver ændret flere gange må skyldes at den bliver lagt bagerst i listen når den bliver rettet, og da den stadig hedder *.mp3 bliver navnet åbenbart ændret en gang til
Avatar billede hreiff Nybegynder
12. januar 2003 - 20:22 #8
Eller også hed filen allerede noget med ' - en fil'
Så må du sætte en ekstra kontrol ind:

If pos(' - en fil',s.Name) = 0 then
  RenameFile(path+s.Name, path+z+'- en fil.mp4');

så bliver filnavne der allerede indeholder ' - en fil' ikke ændret en gang til.

Dvs.:

procedure TForm1.Button1Click(Sender: TObject);
var
  s : TSearchRec;
  path,ext,z:string;

begin
  path := 'e:\testmappe\';
  ext := '.mp3';
  if FindFirst(path+'*'+ext, faAnyFile, s) = 0 then
  repeat
    z := copy(s.Name,1,length(s.Name)-length(ext));  {fjerner extension}
    If pos(' - en fil',s.Name) = 0 then
      RenameFile(path+s.Name, path+z+'- en fil.mp3');
  until FindNext(s) <> 0;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester