Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Tutorials
You last visited: Today at 06:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[TuT] Eigenes Datei -Suchprogramm erstellen

Discussion on [TuT] Eigenes Datei -Suchprogramm erstellen within the Tutorials forum part of the Off-Topics category.

Reply
 
Old   #1
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
[TuT] Eigenes Datei -Suchprogramm erstellen

[TuT] Eigens Dateisuch System erstellen mit Delphi


Hi,
in meinem ersten Tutorial möchte ich euch erklären/zeigen wie ihr einen eigenen Suchdienst in Delphi proggen könnt. Dieser hat den mehrere Vor- und Nachteile

Pro:


- Ihr erlernt die Sprache und und deswegen machen wir das ja überhaupt erst
- Er geht meiner Meinung schneller als der Windows eigene Suchfunktion
- Sie sucht nur wirklich nur Dateien mit dem exakt angegebenen Namen (was vlt. Auch ein Nachteil sein könnte)
Contra


- Wie schon angesprochen sucht sie nur nach Dateiendungen oder dem exakten Namen
- Sonst fällt mir eigentlich gar nix ein.

Was brauchen wir?


- Delphi
- Menschenverstand

Los geht’s…
Als erstes öffnet ihr nun Delphi. Ich benutze auf den Bildern Delphi 2010. Bitte nicht wundern. Es ist keine illegale Version. Bloß eine Demo, die ich über TimeShifter aufrecht erhalte.
Also, los geht’s, öffnet eine VCL Anwendung



Wenn ihr das habt, bestückt euer Formular mit folgenden Komponenten:
- 2 Groupboxen
- 2 Buttons oder 2 BitBtn
- 1 Label
- Und 1 Edit Feld
Beschriftet die Komponenten anschließend wie auf dem bild



Wechselt mit F12 in den Code Editor.
Schreibt nun unter folgenden Code die neue Prozedure:




Code:
 Procedure FindFiles (aPath, aFindMask: String;  aResult: tStrings);
Var
  FindRec: tSearchRec;
Begin
  // Wenn unser Edit Feld nicht ausgefüllt wurde dann abbrechen
  If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then
    Exit;

  // Wenn der Pfad unvollständig, ein "\" eibfügen
  If aPath[Length (aPath)] <> '\' Then
    aPath := aPath + '\';

  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // ...Ergebnis in die Stringlist einfügen
        aResult.Add (aPath + FindRec.Name);
    Until FindNext (FindRec) <> 0;

  FindClose (FindRec);

  // In Unterverzeichnissen weiter suchen
  If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
        If Boolean (FindRec.Attr and faDirectory) Then
          // Im nächstes verzeichnis suchen  ;)
          FindFiles (aPath + FindRec.Name, aFindMask, aResult);
    Until FindNext (FindRec) <> 0;

   FindClose (FindRec);
End;
Puhh, sieht ja ziemlich kompiziert aus. Ich habe regelmäßig Kommentare eingefügt. Für alle die aber zu faul sind die sich raus zu suchen erkläre ich hier nochmal Grob. Die Prozedure fängt im Verzechnis C:\ an zu suchen, schreibt die gefunden Treffer/Datein in die ListBox und öffnet selber das nächste Verzeichnis. Dort wiederholt sie den Vorgang. Dieses Verfahren nennt sich „Rekursion“. Mehr dazu auf



Wie gehts weiter?

So, den Code haben wir.. Nur er nützt uns noch nix. Um ihn aufzurufen doppelklicken wir auf den Button mit der Aufschrift "Datei(n) suchen".

Dort gehört folgender Code hinein:

Code:
 procedure TForm1.BitBtn1Click(Sender: TObject);
var Eingabe: String;
      Find: Integer;
begin
  Eingabe := String(Edit1.Text);  // (1)
  FindFiles ('C:\', PWideChar(Eingabe), ListBox1.Items);  // (2)
  Find := listbox1.items.count;  // (3)
  GroupBox1.Caption := 'Es wurden '  + (IntToStr(Find))+ ' ' + Eingabe + ' Datein gefunden';

end;
(1): Als erstes müssen wir im Edit Feld die zu suchende Datei eingeben. Diese wird in einen String umgewandelt .
(2): Ist der eigentliche Aufruf der Funktion. Start ist im laufwerk C:\. Unser zu suchendes Objekt wird nun von einem String in ein PChar umgewandelt. Anschließend wird es in der ListBox angezeigt.

(3): Als nächstes werden die Einträge in der ListBox gezählt

Kommt noch was?

Als kleines Extra habe ich mir gedacht, das man die Datei direkt öffnen kann.
Dazu verwenden wir die "ShellAPI". Diese bitte unbedingt voher einbinden.

Code:
uses ShellAPI;
Dann gehts auch schon los mit dem öffnen. Einfach einen Doppelklick auf
"Datei oder Programm öffnen" und folgenden Code einfügen.

Code:
var  s:string;
begin
  s := ListBox1.Items[ListBox1.ItemIndex]; // wählt einen entsprechenden Eintrag aus

  shellexecute(handle, 'open', PChar( s), nil, nil, sw_show);  // öftnet die Datei

end;
Jetzt könnt ihr eurer Programm mit F9 starten und euch über eurer Arbeit freuen.

Nachtrag

Ich hoffe euch hat mein erstes Tutorial gefallen. Wenn es gut ankommt, werde ich auch gerne weitere erstelln. ich hoffe auch das es sehr Anwenderfreundlich geschrieben wurde.

Hier nochmal der Komplette Code:
Außerdem kann alles nochmal gedownloaded werden.

Über ein Thanks würde ich mich auch sehr freuen

Attached Files
File Type: rar TuT.rar (325.9 KB, 33 views)
HardCore.1337 is offline  
Thanks
12 Users
Old 12/09/2009, 17:55   #2
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
Würde mich gerne über Feedback freuen
HardCore.1337 is offline  
Thanks
2 Users
Old 12/13/2009, 18:52   #3
 
elite*gold: 0
Join Date: Jan 2008
Posts: 74
Received Thanks: 4
ich werds mal testn schaut gut aus und thx für die mühe!
dpjeezy89 is offline  
Old 12/16/2009, 13:38   #4
 
elite*gold: 7
Join Date: May 2005
Posts: 1,528
Received Thanks: 318
Sieht nach einem sehr guten Tut aus, habs nich probiert aber die Erklärungen im Quellcode sind auch recht nützlich, schön gemacht.
Scholzi is offline  
Thanks
1 User
Old 12/18/2009, 15:18   #5
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
Danke.

Soll ich mal ein neues erstellen?
HardCore.1337 is offline  
Thanks
1 User
Old 12/24/2009, 21:43   #6
 
elite*gold: 0
Join Date: Dec 2008
Posts: 367
Received Thanks: 217
Nice,,, ich bleibe aber lieber beim windows-suchsystem

trotzdem nice
.MrBurns is offline  
Old 12/24/2009, 23:29   #7
 
elite*gold: 0
Join Date: Dec 2009
Posts: 15
Received Thanks: 1
ich bleibe auch bei windows such system

Trotzdem schönes tut
NoT_aVaIlAbLe is offline  
Reply


Similar Threads Similar Threads
[How To] Eigenes MMORPG erstellen
06/24/2013 - Tutorials - 70 Replies
Ich begrüße euch, Also, wie erstellt man ein eigenes MMORPG? Die kurze Antwort: GARNICHT Nun die lange Variante: Ein MMORPG ist wie der Name schon sagt, ein Spiel bei welchem sehr viele Onlinespieler gleichzeitig spielen können. Also alle, wo nicht mindestens 750 bis 1500 Spieler gleichzeitig mitmachen können, ist kein MMORPG, nein, im besten Fall ein MORPG oder ORPG, wenn überhaupt.
[HowTo]Eigenes Feuerwerk erstellen
12/29/2010 - Metin2 PServer Guides & Strategies - 34 Replies
Hallo zusammen ;) Heute möchte ich euch zeigen, wie ihr eine eigenes Feuerwerk erstellt, bzw den Text von einem Feuerwerk ändert. Was ihr braucht: -Den Extracter aus dem Anhang -Die Effect.eix & Effect.epk -Ein Programm, welches das .DDS Format unterstüzt -Für Anfänger: ca. 20 Minuten Zeit (ohne lesen) -Für Profis: ca. 5 Minuten Zeit (ohne lesen)
[Wie] Eigenes Glitzer desgin erstellen
07/24/2010 - Metin2 Private Server - 0 Replies
Hallo wie kann man ein eigenes einstell z.b so strom aber nicht die farbe das kann ich.. also damit es anders glitzert und nich so striche sind .. hoffe ihr wisst wie das geht und ihr hilft mir lg.
Eigenes NPC erstellen???
05/15/2010 - Metin2 Private Server - 15 Replies
Ich hatte sehr viele Threads gelesen wie das geht aber finde die nichtmehr selbst mit der SuFu kann ich die nicht finden. Also ich will ein NPC erstellen das aussieht wie die Gemi (9003) Und dann aber andere Sachen verkauft zB rüssis +9 etc (zB 11299) Es soll stehen im gelben reich map 1 (Koords: 663, 607) Wie krieg ich das nun hin? Und die Gemi soll natürlich auch noch vorhanden sein das NPC soll zusätzlich sein. P.S: Weiß jmd den Value Code für Verlobungsringe ? :D
Eigenes Virus Erstellen !!!!!!!!!!!!!
06/11/2009 - Tutorials - 6 Replies
Heii Leute Ich wollte euch mal zeigen wie man harmlose Viren erstellt. Sie sind nicht gefählich nerven einfach nur ^^ Als erstes macht ihr rechtsklick auf euer Desktop und dann > NEU > Textdokument da schreibt ihr folgendes rein : start start



All times are GMT +1. The time now is 06:19.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.