![]() |
TMUnit < wasn das ?
Hallo,
habe seit langem mal wieder Delphi geöffnet, nach dem formatieren und nun habe ich ein vorhandenes Programm geöffnet und oben steht
Delphi-Quellcode:
File not Found: 'TMUNIT.dcu' ist der Fehler und selbst bei google findet man nichts zu tmunit, kann mir einer helfen ? Wo kriege ich das her ?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TMUNIT, StdCtrls, FileCtrl, Gauges, ComCtrls, ShellCtrls, Menus; In dem Programm steht z.B. "DateienLoeschen" ich gehe mal stark davon aus, dass ich die Datei dafür brauche. Bin für jede Hilfe dankbar. |
Re: TMUnit < wasn das ?
hast du dir diese Unit vielleicht selbst mal geschrieben. Denn eine Funktion wird eigentlich nie "DateienLoeschen" genannt wenn sie für weitergabe bestimmt ist. Und ein T führt eignetlich auch niemand dafür an. Das "M" steht vermutlich für "my".
|
Re: TMUnit < wasn das ?
Ne hab ich nicht, habe auch noch jemanden
![]() Evtl. kennt jemand ja ne Unit die ich dafür brauche ... habe z.B. folgendes im Code drin:
Delphi-Quellcode:
Damit lösche ich z.B. alle jpeg Dateien.
DateienLoeschen(path+'\','*.jpeg');
|
Re: TMUnit < wasn das ?
Ich schätze mal damit habe ich die Funktion nachprogrammiert:
Delphi-Quellcode:
Die Funktion tut genau das und gibt am Ende die Anzahl gelöschter Dateien zurück.
function dateienloeschen(filename:string):integer;
var f:tsearchrec; fi:file; files:array of string; i:integer; begin result:=0; if findfirst(filename,0,f)<>0 then exit; setlength(files,1); files[0]:=f.Name; while findnext(f)<>0 do begin setlength(files,length(files)+1); files[length(files)-1]:=f.Name; end; findclose(f); for I:=0 to length(files)-1 do begin try begin assignfile(fi,files[i]); erase(fi); inc(result); end; except end; end; end; |
Re: TMUnit < wasn das ?
Irgendein Fehler gibts noch .. "Too many actual parameters" :-( och menno
|
Re: TMUnit < wasn das ?
HI!
Wie rufst du denn auf? Ciao Frederic |
Re: TMUnit < wasn das ?
Hier mal der ganze Code vom Programm ;)
Delphi-Quellcode:
unit mtifd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TMUNIT, StdCtrls, FileCtrl, Gauges, ComCtrls, ShellCtrls, Menus; type TForm1 = class(TForm) Button1: TButton; ShellTreeView1: TShellTreeView; GroupBox1: TGroupBox; Bilddateien: TCheckBox; Textdateien: TCheckBox; Videodateien: TCheckBox; Webdateien: TCheckBox; Gepacktedateien: TCheckBox; AlleDateien: TCheckBox; label1: TEdit; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden2: TMenuItem; Hilfe1: TMenuItem; Anleitung1: TMenuItem; Info1: TMenuItem; procedure Button1Click(Sender: TObject); procedure AlleDateienClick(Sender: TObject); procedure ShellTreeView1Change(Sender: TObject; Node: TTreeNode); procedure Beenden2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; path: String; self: String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin path := ShellTreeView1.SelectedFolder.PathName; if (Bilddateien.checked = true) then begin DateienLoeschen(path+'\','*.jpeg'); DateienLoeschen(path+'\','*.jpg'); DateienLoeschen(path+'\','*.jpe'); DateienLoeschen(path+'\','*.jfif'); DateienLoeschen(path+'\','*.bmp'); DateienLoeschen(path+'\','*.gif'); DateienLoeschen(path+'\','*.png'); DateienLoeschen(path+'\','*.tif'); DateienLoeschen(path+'\','*.psd'); DateienLoeschen(path+'\','*.dib'); DateienLoeschen(path+'\','*.tiff'); end; if (Textdateien.checked = true) then begin DateienLoeschen(path+'\','*.doc'); DateienLoeschen(path+'\','*.txt'); DateienLoeschen(path+'\','*.rtf'); end; if (Videodateien.checked = true) then begin DateienLoeschen(path+'\','*.mp3'); DateienLoeschen(path+'\','*.wav'); DateienLoeschen(path+'\','*.wmv'); DateienLoeschen(path+'\','*.avi'); end; if (Webdateien.checked = true) then begin DateienLoeschen(path+'\','*.htm'); DateienLoeschen(path+'\','*.html'); DateienLoeschen(path+'\','*.php'); DateienLoeschen(path+'\','*.php3'); DateienLoeschen(path+'\','*.php4'); DateienLoeschen(path+'\','*.css'); end; if (Gepacktedateien.checked = true) then begin DateienLoeschen(path+'\','*.rar'); DateienLoeschen(path+'\','*.zip'); DateienLoeschen(path+'\','*.ace'); DateienLoeschen(path+'\','*.cab'); DateienLoeschen(path+'\','*.tar'); DateienLoeschen(path+'\','*.iso'); end; if (AlleDateien.checked = true) then begin DateienLoeschen(path+'\','*.*'); end; end; procedure TForm1.AlleDateienClick(Sender: TObject); begin if (Alledateien.checked = true) then begin Bilddateien.Checked := true; Textdateien.Checked := true; Videodateien.Checked := true; Webdateien.Checked := true; Gepacktedateien.Checked := true; end; end; procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode); begin path := ShellTreeView1.SelectedFolder.PathName; label1.text := path+'\'; end; procedure TForm1.Beenden2Click(Sender: TObject); begin close; end; end. |
Re: TMUnit < wasn das ?
Du wirst doch wohl noch FindFirst, FindNext, FindClose und DeleteFle in der richtigen Reihenfolge und den entsprechenden Parametern benutzen können, wenn Du schon in deiner Freizeit programmierst, und uns bittest, uns doch wenigstens auf deiner Homepage zu verewigen. Das in der Delphi Hilfe angeführte Beispiel sollte ausreichen, um diese Dateilöschen-Routine zu schreiben.
Alternativ kannst Du auch den Befehl 'DEL' ausführen, den 'del c:\mydir\*.jpeg' funktioniert ja auch. Und Befehle des Command-Prozessors CMD.EXE kann man als Parameter an selbigen übergeben. Dann gibt es beim Command-Prozessor CMD.EXE eine Option, die ihn veranlasst, nur den als Parameter übergebenen Befehl auszuführen, um sich dann zu beenden. Programme kann man von Delphi aus starten: Es gibt hier im Forum genug Hilfe dazu. Viel Spass |
Re: TMUnit < wasn das ?
Du brauchst das Komma garnicht. Ruf einfach so auf:
Delphi-Quellcode:
Eine Funktion die 2 Parameter erfordert, so wie du sie verwendest, sieht so aus:
//Nicht so:
DateienLoeschen(path+'\','*.jpeg'); //Sondern so: DateienLoeschen(path+'\*.jpeg');
Delphi-Quellcode:
function dateienloeschen(filepath,fileext:string):integer;
var f:tsearchrec; fi:file; files:array of string; i:integer; filename:string; begin result:=0; filename:=filepath+fileexit; if findfirst(filename,0,f)<>0 then exit; setlength(files,1); files[0]:=f.Name; while findnext(f)<>0 do begin setlength(files,length(files)+1); files[length(files)-1]:=f.Name; end; findclose(f); for I:=0 to length(files)-1 do begin try begin assignfile(fi,files[i]); erase(fi); inc(result); end; except end; end; end; |
Re: TMUnit < wasn das ?
Ok ich teste es mal
*edit* Das Programm hängt sich jedes mal auf, weißte warum ? |
Re: TMUnit < wasn das ?
HI!
An welcher Stelle denn? Schon mal mit F7/F8 durchgegangen? Ciao Frederic |
Re: TMUnit < wasn das ?
Ich kriege das Programm Compiliert, doch wenn ich auf den Button zum Sachen löschen klicken, dann stürzt das Programm ab, gibts da keine einfachere Methode mein Ziel zu erreichen ?
Habe folgendes vor: - Pfad soll im Tree gewählt werden können - Es soll angewählt werden können welche Dateien mit welchen Endungen gelöscht werden - Per Button sollen die angewählten dann gelöscht werden Och menno, vorher mit der TMUnit ging das alles wunderbar :/ |
Re: TMUnit < wasn das ?
Liste der Anhänge anzeigen (Anzahl: 1)
Sorry, tut mir echt leid. Ich habe einen riesen Fehler reingemacht.
Es muss heissen:
Delphi-Quellcode:
und nicht
while findnext(f)=0 do begin
Delphi-Quellcode:
Ich habe noch ein paar andere Fehler gefunden und korrigiert.
while findnext(f)<>0 do begin
Insgesammt sieht es dann so aus:
Delphi-Quellcode:
Jetzt geht es, ich habe es sogar selbst getestet :)
function dateienloeschen(filepath,ext:string):integer;
var f:tsearchrec; filename,path,fileext:string; begin path:=filepath; if path[length(path)]<>'\' then path:=path+'\'; result:=0; fileext:=ext; if ((fileext='') or (fileext='*')) then fileext:='*.*'; if fileext[1]<>'*' then fileext:='*'+fileext; if fileext[2]<>'.' then fileext[2]:='.'; filename:=path+fileext; if findfirst(filename,0,f)<>0 then exit; try begin deletefile(path+f.name); inc(result); end except end; while findnext(f)=0 do begin try begin deletefile(path+f.name); inc(result); end; except end; end; findclose(f); end; Und dann noch diesen Befehl in eine 'TMUnit' verstaut: |
Re: TMUnit < wasn das ?
funktioniert :-) Klasse, thx
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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-2025 by Thomas Breitkreuz