![]() |
Komplette Partition C:
Hallo
Wenn ich in den Filter des open dialogs den Filter für ".wav;.wma;" gemacht habe durchsucht es dann die ganze Partition C ???? Ich habe bei open nur dateien aus der Partition C stehen. Habe also alles schon gemacht will nur wissen ob es die ganze Partition C durchsucht auch in den Ordner. Hoffentlich habt ihrs kapiert wie ich das meine :gruebel: |
Re: Komplette Partition C:
Moin I.A.,
der Filter bezieht sich immer auf das Verzeichnis, auf den der Dialog gerade verweist. |
Re: Komplette Partition C:
Also dursucht er die ganze Partition ???
|
Re: Komplette Partition C:
Moin I.A.
nein, wie kommst Du da drauf? :gruebel: |
Re: Komplette Partition C:
Weil ich es will das er die ganze Partition nach dieser Dateiendung absucht. :wall:
|
Re: Komplette Partition C:
Also ich hatte auch das Problem das er immer nur die Dateien fand die direkt in C:\ gespeichert waren also hab ich mal geguckt und diese Procedure gefunden klappt bestens, um dir alle Dateien in einem Verzeichnis anzeigen zu lassen, auch die in den Unterordnern:
Delphi-Quellcode:
Viel Spaß damit und Grüße aus Niederelsungen!
public
procedure GetFiles(const Path: string); { Public-Deklarationen } procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt'; end; |
Re: Komplette Partition C:
Ja könnte gehen aber bei mir funktioniert des mit dem net(besser gesagt ich blicks net weil ich anfänger bin):
Delphi-Quellcode:
da brauch ich doch so ein GetFile oder ??
procedure TForm1.GetFiles(const Path: string);
wie :
Delphi-Quellcode:
da brauch ich ja den Button dazu. :gruebel:
procedure TForm1.ClickButton1();
|
Re: Komplette Partition C:
Nein also du musst einfach in den OnClick Befehl von dem Button oder den CanClose Befehl von dem OpenDialog dass hier einfügen
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin Form1.GetFiles('C:\'); end; |
Re: Komplette Partition C:
Aha und das:
Delphi-Quellcode:
brauche ich nicht mehr ????
public
procedure GetFiles(const Path: string); { Public-Deklarationen } procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt'; end; |
Re: Komplette Partition C:
Doch du musst dass dann ungefähr so verwenden:
Delphi-Quellcode:
sogar gestestet!
unit MyPad1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, FileCtrl, ComCtrls, ExtCtrls; type TForm1 = class(TForm) procedure ....................; procedure ....................; procedure ....................; private { Private-Deklarationen } public procedure GetFiles(const Path: string); { Public-Deklarationen } end; var Form1: TForm1; Weiter:Boolean; a:integer; implementation {$R *.dfm} procedure TForm1.BitBtn2Click(Sender: TObject); begin a:=0; Memo1.Clear; Form1.GetFiles('C:\'); end; procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt'; end; end. |
Re: Komplette Partition C:
Ok werd ich mal versuchen :mrgreen:
bis jetzt hat so was noch nie bei mir geklappt des ging au net:
Delphi-Quellcode:
da war immer das Get Windows rot.
function GetWinVersion: string;
begin result:='Unbekannte Version'; case Win32Platform of 1:// 9x-Reihe If Win32MajorVersion=4 Then Begin Case Win32MajorVersion of 0: result:='Windows 95'; 10: result:='Windows 98'; 90: result:='Windows Me'; end; end; 2: // NT-Reihe Case Win32MajorVersion of 3:IF Win32MinorVersion=51 then result:='Windows NT 3.51'; 4:If Win32MinorVersion=0 then result:='Windows NT 4'; 5:Case Win32MinorVersion of 0: result:='Windows 2000'; 1: result:='Windows XP'; 2: result:='Windows .NET Server'; end; End; end; //Win32CSDVersion enthält Informationen zu Servicepacks if Win32CSDVersion<>'' then result:=result+' '+Win32CSDVersion; end; naja ich werds mal versuchen. |
Re: Komplette Partition C:
Das solltest du in einem eigenen Thread behandeln da atimmt noch nicht einmal die erste Zeile:
Delphi-Quellcode:
function GetWinVersion: string;
|
Re: Komplette Partition C:
Was soll daran falsch sein? :gruebel:
Irgendwie habe ich das gefühl das I.A. gern die Deklaration der Funktionen und Proceduren vergisst, bzw. fehlende Units einzubinden. Verleicht sollte er sich mal das ![]() |
Re: Komplette Partition C:
|
Re: Komplette Partition C:
Oh ja tut mir leid Denkfehler von mir dachte bei Funktionen kommen auch klammern drum hats denn mit meinem Quelltext funktioniert?
|
Re: Komplette Partition C:
So habe ich das von dir kopiert und eingesetzt aber da ist immer noch Puplic und GetFiles rot unterstrichen.
Delphi-Quellcode:
Das war deins jetzt gebe ich den Komletten Code so wie er bei mir da steht :
public
procedure GetFiles(const Path: string); { Public-Deklarationen } procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt';
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FileCtrl, ComCtrls; type TForm1 = class(TForm) ProgressBar1: TProgressBar; Memo1: TMemo; SaveDialog1: TSaveDialog; FileListBox1: TFileListBox; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FileListBox1Change(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; a:integer; implementation {$R *.dfm} procedure TForm1.FileListBox1Change(Sender: TObject); begin FileListBox1.ApplyFilePath('C:\'); end; procedure TForm1.Button2Click(Sender: TObject); begin savedialog1.Execute; memo1.Lines.savetofile(savedialog1.filename+ '.mp3'); end; public procedure GetFiles(const Path: string); { Public-Deklarationen } procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt'; end; end; end. |
Re: Komplette Partition C:
Also du musst dir nochmal genauer anschauen wie das mit den privaten prozeduren läuft, es sollte nämlich eigentlich so bei dir aussehen, wie ich dass in meinem Beitrag #10 bereits gepostet habe nimm dass mal dass muss funktionieren habs selber getestet! Kann dir jetzt leider keinen Link zu dem Thread schicken wo private prozeduren genauer beschrieben werden
|
Re: Komplette Partition C:
Ja der funktioniert bei mir fast aber da hast du das gemacht :
Delphi-Quellcode:
die ersten 2 proceduren hab ich schon nämlich :
procedure ....................;
procedure ....................; procedure ....................;
Delphi-Quellcode:
aber die dritte procedure find ich nicht.
procedure BitBtn2Click(Sender: TObject);
procedure GetFiles(const Path: string; procedure ; |
Re: Komplette Partition C:
Delphi-Quellcode:
So sollte der Kopf aussehen ^^
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FileCtrl, ComCtrls; type TForm1 = class(TForm) ProgressBar1: TProgressBar; Memo1: TMemo; SaveDialog1: TSaveDialog; FileListBox1: TFileListBox; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FileListBox1Change(Sender: TObject); public procedure GetFiles(const Path: string); end; {...} Und dann die Erklärung:
Delphi-Quellcode:
Aso:
unit {Unitname};
interface uses {Benötigte/Imporitiere Dateien (mist :( Mir fällt das Wort dafür gerad nich ein :()}; type //Klasse {Name} = class({Elternklasse}) {Funktionen/Prozedurendeklarationen // Setzen d. Variablen} end; Du kannst nicht irgendwoe im Code "procedure GetFiles(const Path: string);" reinschreiben, sonder das MUSS immer vor implentation ;) |
Re: Komplette Partition C:
Nein tut mir Leid du hast das Falsch verstanden das sollte keine Anzahl darstellen sondern einfach nur ein Platzhalter sein für deine anderen Prozeduren hast das so richtig gemacht. Was willst du überhaupt mit deinem Programm erreichen? bzw. was macht es?
|
Re: Komplette Partition C:
Naja es soll ersmal alle .wav und alle .wma dateien auf der Festplatte in einer Listbox anzeigen und dann nacher in MP3 umwandeln.
Halt ohne zu komprimieren. |
Re: Komplette Partition C:
Liste der Anhänge anzeigen (Anzahl: 1)
Also wenn du einfach nur umbennen meinst hättest du das auch gleich sagen können hab da nämlich was fertig unten findest du die MyChanger.exe ist vollkommen variabel da du ja den Quelltext hast aber bitte damit keine personen verarschen, ich hab erfahrung damit. Ich übernehme keine Haftung für deine Daten will ich noch hinzufügen. Das Programm funktioniert zwar einwandfrei aber mann weiß ja nie! Schrieb bitte obs das richtige war!!!
Delphi-Quellcode:
unit MyPad1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, FileCtrl, ComCtrls, ExtCtrls; type TForm1 = class(TForm) Memo1: TMemo; BitBtn2: TBitBtn; DriveComboBox1: TDriveComboBox; DirectoryListBox1: TDirectoryListBox; Edit1: TEdit; BitBtn3: TBitBtn; ProgressBar1: TProgressBar; Panel1: TPanel; Panel2: TPanel; BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; Panel3: TPanel; Panel4: TPanel; Label3: TLabel; procedure DriveComboBox1Change(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure DirectoryListBox1Change(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private-Deklarationen } public procedure GetFiles(const Path: string); { Public-Deklarationen } end; var Form1: TForm1; Weiter:Boolean; a:integer; implementation {$R *.dfm} procedure TForm1.BitBtn2Click(Sender: TObject); begin a:=0; Memo1.Clear; Form1.GetFiles(DirectoryListbox1.Directory+'\'); end; procedure TForm1.GetFiles(const Path: string); var SearchRec: TSearchRec; p: string; begin Label1.Caption:=''; p := path + '*.*'; if FindFirst(p, faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory) = faDirectory then begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then GetFiles(Path + SearchRec.Name + '\'); end else begin Form1.Memo1.Lines.Add(Path + SearchRec.Name); a:=a+1; Refresh; Application.ProcessMessages; ProgressBar1.StepIt; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; ProgressBar1.Position:=0; Label1.Caption:=IntToStr(a) +' Dateien gescannt'; end; procedure TForm1.DriveComboBox1Change(Sender: TObject); begin DirectoryListbox1.Drive:=DriveComboBox1.Drive; end; procedure TForm1.DirectoryListBox1Change(Sender: TObject); begin Edit1.Text:=DirectoryListbox1.Directory; DirectoryListbox1.DirLabel.Hint:=DirectoryListbox1.Directory; DirectoryListbox1.Hint:=DirectoryListbox1.Directory; end; procedure TForm1.BitBtn3Click(Sender: TObject); var i:integer; begin if Memo1.Lines.Count>0 then begin if MessageDlg('Wirklich umbennen?',mtwarning,[mbOK,mbCancel],0)=mrOk then begin ProgressBar1.Max:=Memo1.Lines.Count; for i:=0 to Memo1.Lines.Count-1 do begin if pos('.wav',Memo1.Lines.Strings[i])<>0 then RenameFile(Memo1.Lines.Strings[i],StringReplace(Memo1.Lines.Strings[i],'.wav','.mp3',[rfreplaceall])); if pos('.MP3',Memo1.Lines.Strings[i])<>0 then RenameFile(Memo1.Lines.Strings[i],StringReplace(Memo1.Lines.Strings[i],'.wma','.mp3',[rfreplaceall])); if pos('.avi3',Memo1.Lines.Strings[i])<>0 then ProgressBar1.Position:=i; refresh; end; end; ProgressBar1.Position:=0; end else MessageDlg('Keine Dateien gescannt!',mtinformation,[mbOk],0); end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Memo1.Clear; a:=0; Label1.Caption:=''; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin Weiter:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin //DirectoryListbox1.Directory:='C:\Dokumente und Einstellungen\Maxl\Desktop\Neuer Ordner'; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:=MessageDlg('MyChanger beenden?',mtconfirmation,[mbYes,mbNo],0)=mrYes; end; end. |
Re: Komplette Partition C:
Also ich hatte eigentlich nicht vor jemand zu verarschen.
Des is nur für mein Freund der zu blöd ist die Endung der Datei zu ändern. Sein Handy nimmt nur MP3 Format an. |
Re: Komplette Partition C:
Häää :gruebel:
Wie nennt des um ?? Und hast du das aus einer Anwendung oder einer Form gemacht ??? Ich arbeite immer mit Formen weil ich das besser blick. |
Re: Komplette Partition C:
Ich glaube du lässt mal besser die Finger von dem Ganzen.
Eine WMA-Datei als MP3-Datei umbenennen? Gehts noch? Von dem anderen fange ich gar nicht erst zu reden an... Sucht im Internet nach Tools für WMA in MP3-Konvertierung. Da werdet ihr garantiert fündig. Eure/Deine MP3s und WMA in einer Listbox aufzulisten das traue ich, nachdem was ich von dir gesehen hab, sogar dir zu. Aber was danach kommt... Bitte. ![]() Wenn du mit programmieren anfangen möchtest dann such dir bitte was leichteres. Einen Counter z.B. oder eine Digitale Uhr was auch immer. Gruß |
Re: Komplette Partition C:
Zitat:
Flare |
Re: Komplette Partition C:
Ne also ich habe net so weit gedacht das das Handy die auch noch abspielen muss :oops: ganz vergessen.
Aber gibt es kostenlose Tools, die sind ja immer voll teuer. Für den würde das sich nicht lohnen, sein Handy hat nur 64MB und der ist ein geitzkragen. |
Re: Komplette Partition C:
Man könnte sich auch nen eigenen Mp3-Converter programmieren (mit der lame.dll oder wie die heißt ging das glaube ich) und ich glaube hier in der DP auch schon welche gesehen zu haben, die dann auch kistenlos sind. Warscheinlich kommen diese auch nicht an die kommerziellen heran, aber sie sind kostenlos und für diesem Zweck denke ich mal völlig ausreichend :zwinker:
Flare |
Re: Komplette Partition C:
Zitat:
Na wie wäre es mal mit ein wenig Eigeninitiative? Google ist immer noch dein/euer Freund. Und ob die Dinger was kosten lässt sich auch "relativ" leicht rausfinden :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 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