Funktionen und Proceduren für den Datei zugreiff

Zur Vorstellung von Komponenten und Units für Lazarus

Funktionen und Proceduren für den Datei zugreiff

Beitragvon pluto » 28. Mär 2007, 11:59 Funktionen und Proceduren für den Datei zugreiff

Hallo,
ich habe einige nützliche sachen für den zugrief auf das Dateisystem, hier ist eine Übersicht:
Code: Alles auswählen
// Startet eine anwendung
//  procedure RunApp(f:TFileName;param:string;handle:hwnd);
  // Splitet einen Dateipfad in zwei hälften
  function ExtractFilePfad1(Pfad:String):String;
 
  // Prüft ob es die erweiterung schon im Dateiname gibt, wenn ja wird nur der dateinamen
  // Zurück geben, wenn nicht: Dateiname + Erweiterung
  function AddExt(FileName:TFileName; Ext:String):String;
 
  // Erstelle eine leer Datei
  procedure CreateFile1(FileName:TFileName);
  // Löscht gefüllt verzeichnise
//  function Deltree(dir: string): Boolean;
 
//  function ReadDir(Path, Mask:string; ShowPath: boolean; mitExt,mitData:Boolean): TStringlist;
  // Liefrt das exe verzeichnis
  function GetExeDir(isS:Boolean = False):String;
 
  // Wenn exedir vorkommt wird es durch das exedir verzeichnis ersetzt
  function GetDir(dir:string):string;
 
  // gibt Datei infos zurück
//  function GetFileInfo(FileName,ch:String):String;
 
  // Schaut in der ExtList nach ob, es sich um eine erlaubte Dateiendung handelt oder nicht
  function FileNameInTheList(FileName, extList:String):boolean;
 
  // Liefert alle verzeichnise einschließnd unterverzeichnise eines verzeichnis
  procedure GetAllFiles(Path, ExtMask: String; List: TStrings;SubFolder: Boolean);
 
  //  Liefert die genaue datei größe als Bytes
  function GetFileSize1(const AFileName: String): INT64;
 
  // Prüft ob in bestimmtens zeichem im im Dateinamen vorhanden ist
  function IsChar(const AFilename: string; ch: string): String; overload;
 
  // Prüft ob in bestimmtens zeichem im im Dateinamen vorhanden ist
  function IsChar(const AFilename: string; ch: char): String; overload;
 
  // Prüft ob in den Dateinamen ein ein \ ist und wenn nicht, fügt er es hinzu
  function CheckBackSlash(const AFilename: String): String;
 
  // List ein verzeichnis in eine TStringList und pack einige Daten hinzu(nach wunsch)
//  function GetFileSizeDir(Path, Mask:string; ShowPath: boolean; isdata:Boolean): TStringlist;
 
  // Gibt einen folgendes zurück(als beispiel: 18 KB
  function FormatFileSize(Size: INT64): string;
  // Ließt einen String aus einer ini datei
  function  ReadIni(FileName,Sektion,ident,fehler:String) :String;
 
  // Schreibt einen String in eine Ini Datei
  procedure WriteIni(FileName,Sektion,ident,WriteText:String);
 
  // prüft ob es eine bestimmte ini Sektion schon gibt oder nicht
  function isIniSek(FileName:TFileName; Sek:String):boolean;
 
  // Löscht alle dateien im verzeichnis
//  procedure DeleteFiles(directory: string);
 
  // Löscht eine Datei
  function DelFile(FileName:String):Boolean;
 
  // Wandelt eine BMP zu einer Jpeg um
//  procedure BmpToJpeg(const Filename: String);
 
  // Schießt ein Bild vom Aktivien fenster
//  function FormularSaveScreenShot(FileName: String; h : hWnd): Boolean;
  // Schneidet aus dir da was in dir1 und dir2 steht ab
  function ChagenDir(dir,dir1,dir2,char:String):String;
  // Ersetzt das angeben zeichen durch die angeben verzeichnise
  function ReplaceDir(dir, chr,newDir,newDir1:String):String;
  // Past den FileName ob da z.b. eine Klammer auf steht
  function PasteFileName(FileName:TFileName):String;
  // List aus der aktellen datei die icon eigenschaft aus(offentlich)
  // Gibt ein Realtiv verzeichnis zurück
  function GetRealtiv(dir1,dir2:String):String;
  // Prüft einen Dateinamen auf gültigkeit
//  function IsFileName(FileName: String): Boolean;
  function RandomID(fileName:TFileName; c:Integer):String;
  function RandomID2(count:Integer):string;
  // gibt zurück ob sich bestimmter eintrag im verzeichnis befindet
  function GetAnderDir(dir,mask:String;attri:Integer):boolean;
  // gibt mir die letzte verzeichnise ebene zurück(C:\test1\test1 = test1)
  function GetPrvDir(dir:String):String;
  // macht aus C:\verzeichnis1\verzeichnis2 c:\verzeichnis1\
  function GetPrvDir1(dir:String):String;
//  function GetFilesInDirectory(Directory: String; const Mask: String):boolean;
  function GetFilesInDirectory(ADirectory: string; AMask: String; ARekursiv: Boolean;notMask:String = ''):Boolean;
  // Gibt zurück ob sich einträge aus der angeben liste in einem verzeichnis befindet
//  function GetAnderItem(dir:String;extList:String):Boolean;
//  function IstErweiterungImOrdner(Pfad, Erweiterung: String): Boolean;
//  function FileCount(const dir, masks: String): Integer;


und im Anhang gibt es die Unit zum Downloaden
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon mschnell » 30. Mär 2007, 10:58

Wie unterscheiden sich diese Funktionen von ähnlichen, die man in LCL, Delphi VCL oder Jedi JCL findet ?

Nichts gegen Deine Initiative solche Funktionen zur Verfürgung zu stellen, aber irgendwo 'rumliegenden Tool sind im Fall des Falles schwer zu finden. Schön wäre eine "Datenbank" zu haben wo man sie anhand von Keywords finden kann. Hier könnten eigene "Deutsches-Lazarus-Forum" Tools, weniger bekannte LCL-Funktionen, Jedi Tools und anderes aufgenommen werden. Wer was findet und testet Kann es mit Keywords, Testergebnis und Quelle eintragen. Forum-Admin: Kann man so etwas hinbekommen ?

-Michael
Zuletzt geändert von mschnell am 30. Mär 2007, 15:45, insgesamt 1-mal geändert.
mschnell
 
Beiträge: 3355
Registriert: 11. Sep 2006, 10:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon pluto » 30. Mär 2007, 14:05

ich stimmte dir zu, allerdings habe ich solche Funktionen in Delphi oder Lazarus noch nicht gesehen, das gilt auch für die anderen units.

Ich habe sie geschrieben, weil ich nichts vergleichbares gefunden habe. Und die Jedi JCL gibt es leider noch nicht für Lazarus oder sehe ich das jetzt Falsch ?

die Idee mit der Datenbank währe toll. aber dann müssen auch Teilstrings zugelassen werden und nicht so wie hier im Forum nur ganze String. sonst ist die Idee toll. wobei montana hat ja schon sowas Erstelt mit pastoDoc.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon mschnell » 30. Mär 2007, 15:44

z.B. ExtractFilePath gibt es, was Deine Funktion mit "...l" macht wäre interessant zu wissen.

GetExedir ist vermutlich ExtreactFilePath(Application.Exename) oder so ähnlich.

Die Jedi Code Library behauptet, Free Pascal - kompatibel zu sein.

-Michael
mschnell
 
Beiträge: 3355
Registriert: 11. Sep 2006, 10:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon pluto » 30. Mär 2007, 16:10

könntest du etwas genau sein ?
die Funktionen sind nur für mich geschrieben.
Und erfühllen ihren zweck. Aber jeder kann sie gerne anpassen.

Ich nehme auch gerne ernte Verbesserung-Vorschläge an. Aber dann müssen sie genau sein.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon monta » 30. Mär 2007, 17:09

mschnell hat geschrieben:Schön wäre eine "Datenbank" zu haben wo man sie anhand von Keywords finden kann. Hier könnten eigene "Deutsches-Lazarus-Forum" Tools, weniger bekannte LCL-Funktionen, Jedi Tools und anderes aufgenommen werden. Wer was findet und testet Kann es mit Keywords, Testergebnis und Quelle eintragen. Forum-Admin: Kann man so etwas hinbekommen ?

Ja, lässt sich sicher machen.
Wäre dafür nicht die WissensDB angebracht, mit entsprechenden Sparten, oderwie dachtets du es dir?
monta
Lazarusforum e. V.
 
Beiträge: 2842
Registriert: 9. Sep 2006, 18:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L trunk FPC trunk) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Christian » 30. Mär 2007, 17:23

eine Funktionsdatenbank meinte er Siuchbegriff rein passende funktion raus.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
Lazarusforum e. V.
 
Beiträge: 6085
Registriert: 21. Sep 2006, 07:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon pluto » 30. Mär 2007, 18:23

ja warum nicht... unter dann gleich mehrer Sparten:
- Funktionen und Proceduren
- Klassen und Records(Datentypen)
- Konstanten - am besten mit Beschreibung wo für sie eingesetzt werden.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon monta » 30. Mär 2007, 19:20

Christian hat geschrieben:eine Funktionsdatenbank meinte er Siuchbegriff rein passende funktion raus.

Das ist doch letztlich die WissensDB, da gibts ja auch Volltextsuche.

Wie solls denn genau sein?
Offline, oder Online? Eigene Oberfläche, oder integriert?...
Ich kann aber auch was spezielles aufsetzen, wenn ihr eure Wünsche etwas genauer gestaltet ;).
monta
Lazarusforum e. V.
 
Beiträge: 2842
Registriert: 9. Sep 2006, 18:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L trunk FPC trunk) | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 30. Mär 2007, 19:30

am besten beides(offline und online).
ich stelle mir das so vor:
eine einfache seite wo Links die Funktionen und Proceduren stehen und Rechts die Parameter liste und evlt. noch eine Kurzt Beschreibung mit beispiel.
also eine art Tabelle.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon Christian » 30. Mär 2007, 21:56

Hä das soll doch keine Hilfe werden, dafür kannst auch in die Hilfe gucken.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
Lazarusforum e. V.
 
Beiträge: 6085
Registriert: 21. Sep 2006, 07:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon pluto » 31. Mär 2007, 13:25

im Moment ist die Hilfe ja auch nichts weiter als ein Index.

ich finde sowas wie hier:
http://www.dsdt.info/referenz/
ganz Praktisch und ich würde es toll finden hier auch sowas vorzufinden oder was ähnliches .

edit:
am besten noch das auch gleich die Parameter auf einen blick gesehen werden können
also eine Tabelle mit drei spalten
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon monta » 31. Mär 2007, 13:42

Andere Meinugnen dazu?

gehst es wenn, nicht eher um soetwas: http://www.dsdt.info/tipps/
monta
Lazarusforum e. V.
 
Beiträge: 2842
Registriert: 9. Sep 2006, 18:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L trunk FPC trunk) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Christian » 31. Mär 2007, 14:02

Ja, für alles andere ist die Hilfe da.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
Lazarusforum e. V.
 
Beiträge: 6085
Registriert: 21. Sep 2006, 07:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon pluto » 31. Mär 2007, 14:06

nein. das gibt es ja es bereits sehr oft und so stark unterscheidet sich Lazarus von Delphi ja doch nicht... im Moment. Mir geht es letztendlich nur um eine Übersicht mit allen Anweisungen die es in Lazarus gibt mit einer kurtzt Beschreibung

und Christian was du mit deiner Hilfe meinst weiß ich auch nicht. eine Tolle Hilfe ist das z.z. Du kannst gerne noch Öfter drauf verweisen. Das es eine gibt. aber leider nicht zu gebrauchen.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried