Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Welche Dateiendung soll ich verwenden? (https://www.delphipraxis.net/15676-welche-dateiendung-soll-ich-verwenden.html)

billi 2. Feb 2004 16:00


Welche Dateiendung soll ich verwenden?
 
Hallo,
mein Programm speichert Einstellungen. Nur weis ich nicht welche Dateitendung ich verwenden soll, nicht dass ich nacher eine Dateiendung verwende, die reserviert o.ä. ist.
Ich hatte an *.pcd gedacht, nur scheint das ein Bildformat zu sein. :(
gruß
billi

Florian H 2. Feb 2004 16:08

Re: Welche Dateiendung soll ich verwenden?
 
nimm .dat oder .ini, das ist allgemein gebräuchlich

Computerbabalulu 2. Feb 2004 16:11

Re: Welche Dateiendung soll ich verwenden?
 
Hallo Billi

Wenn du die "Freie Auswahl" hast, nimm doch .cdb z.B.
Die benutze ich schon seit einem Jahr ohne Probleme. Ich kenne keine Windows Anwendung die mit dem gleichen extension arbeitet. Also solltest auch du keine Probleme bekommen.
Oder sei einfach mal kreativ.... Es gibt tausende Möglichkeiten.
Im Explorer kannst du dir übrigens die bissher registrierten Anwenundungen ansehen.
Außerdem kannst du selber Extensions einer Anwendung zuordnen.

Gruß Baba :hi:

Basic-Master 2. Feb 2004 16:11

Re: Welche Dateiendung soll ich verwenden?
 
ich benutze oft cfg oder ini...

billi 2. Feb 2004 16:12

Re: Welche Dateiendung soll ich verwenden?
 
nur ist es so, dass die Datei wie z.b. *.doc fest zu einem PRogramm gehört und dat oder ini einfach zu oft verwendet wird... (gefällt mir halt net so gut :wink: )
btw: die Datei ist vom INhlat schon ne ini Datei... *g*

Matze 2. Feb 2004 16:12

Re: Welche Dateiendung soll ich verwenden?
 
Ich würde auch nur "Standards" wie ini oder dat verwenden, da bist du auf jeden Fall auf der sicheren Seite.

Mirilin 2. Feb 2004 16:15

Re: Welche Dateiendung soll ich verwenden?
 
:hi:

Wenn die Datei eine ini-Datei ist , dann nenn sie doch einfach .ini .
Was bringts, wenn Du eine extraordinäre Endung ranhängst? Ausser dass wieder eine besetzte Endung mehr da ist ? :wink:

mfg Tobias

billi 2. Feb 2004 16:15

Re: Welche Dateiendung soll ich verwenden?
 
da kann ich dann aber schlecht eigene icons zuweisen...

Stanlay Hanks 2. Feb 2004 16:25

Re: Welche Dateiendung soll ich verwenden?
 
Zitat:

Zitat von Computerbabalulu
... nimm doch .cdb z.B.
Die benutze ich schon seit einem Jahr ohne Probleme. Ich kenne keine Windows Anwendung die mit dem

Soweit ich weiß, arbeitet Cineast (Eine Art "Movie Organizer", nähere Infos hier) mit dieser Dateiendung. Sei nur so als Ergänzung gesagt.

Im Übrigen tendiere ich auch eher dazu, eine INI Datei auch *.ini zu nennen. Weshalb sollte man nicht sehen, dass es eine konfigurationsdatei ist? Für eine Einstellungsdatei braucht man doch kein eigenes Icon, oder?

Man liest sich, Stanlay :hi:

MrKnogge 2. Feb 2004 16:27

Re: Welche Dateiendung soll ich verwenden?
 
Ne Liste aller registrierten Dateiendungen:
http://filext.com/
oder bei Microsoft:
http://shell.windows.com/fileassoc/0...ir.asp?EXT=txt

allerdings kenn ich die Suchseite nicht, musst sie also manuel in der Adressleiste eintragen.

billi 2. Feb 2004 16:29

Re: Welche Dateiendung soll ich verwenden?
 
aber der beutzer arbeitet mir dieser Datei wie mit einem Document...
speichern, öffnen, neu erstellen...
gruß
billi
PS: *Freu* gerade ist meine neue Mouse per post gekommen :-D :mrgreen: (logitech MX700)
:cheers:

billi 2. Feb 2004 16:31

Re: Welche Dateiendung soll ich verwenden?
 
die postings überschlagen sich ja förmlich...

na wenn man bei den sites schaut, kann man ruhig auch schon belegte dateiendungen verwenden, wird jedenfalls öfters gemacht...

MrKnogge 2. Feb 2004 16:37

Re: Welche Dateiendung soll ich verwenden?
 
Aber du solltest beachten, dass wenn du beispielsweise '*.doc' für deine konfigurationsdatien Registrierst du dem Benutzer eher ärger als eine leichte Arbeit bescheren wirst.

billi 2. Feb 2004 16:39

Re: Welche Dateiendung soll ich verwenden?
 
da ist was dran, ich würd auch wahrscheinlich pcd nehmen... aber mal schaun...

The-X 2. Feb 2004 17:36

Re: Welche Dateiendung soll ich verwenden?
 
Was hindert dich denn daran ne Extension zu benutzen, die länger ist als 3 Buchstaben?
hab für meine Coktail-Datenbank als Extension ".cocktail" genommen :stupid: wofür gibbet denn lange Dateinamen wenn man sie nicht nutzt?

Oder wolltest das Proggy auch unter Win3.x laufen lassen?

billi 2. Feb 2004 17:40

Re: Welche Dateiendung soll ich verwenden?
 
:wall: warum net...

The-X 2. Feb 2004 17:45

Re: Welche Dateiendung soll ich verwenden?
 
[OT]Lass das lieber :shock: sonst haust dir noch dein Kostbares Hirn kaputt :zwinker: [/OT]

billi 2. Feb 2004 17:48

Re: Welche Dateiendung soll ich verwenden?
 
:lol: :lol: aber mit der IDee kann ich mich anfreunden...

The-X 2. Feb 2004 17:51

Re: Welche Dateiendung soll ich verwenden?
 
Das ist doch genau der Vorteil von LFN, das man nicht mehr an die alte 8.3 Konvention gebunden ist ;)
Es gibt zwar auch bei Fat32 bzw. Win95 und höher noch Restriktionen wegen der Länge ... aber noch lange nicht so gebunden ;)

billi 2. Feb 2004 17:55

Re: Welche Dateiendung soll ich verwenden?
 
Zitat:

Zitat von The-X
Es gibt zwar auch bei Fat32 bzw. Win95 und höher noch Restriktionen wegen der Länge ... aber noch lange nicht so gebunden ;)

Wobei liegen die denn?

The-X 2. Feb 2004 17:58

Re: Welche Dateiendung soll ich verwenden?
 
ich glaub irgendwas mit 256 zeichen,
weiss ich aber nicht genau

FriFra 2. Feb 2004 20:28

Re: Welche Dateiendung soll ich verwenden?
 
Man kann übrigens für jede einzelne Extension auch einstellen, dass diese NICHT angezeigt wird, egal was sonst auf dem Rechner eingestellt ist ;) (Dafür setzt man den Wert "EditFlags" [REG_BINARY] für das entspr. Format auf 00 00 01 00) 8)
Ich verwende seit Jahren "unsichtbare" lange Extensions um meinen Konfigurationsdateien eigene Icons zuweisen zu können. Wenn man diese langen Extensions sehen würde, würde mich das allerdings schon etwas stören...

Stanlay Hanks 2. Feb 2004 20:31

Re: Welche Dateiendung soll ich verwenden?
 
Hi FriFra!
Dazu hätte ich zwei Fragen:

1. Sieht man diese Endungen auch nicht, wenn man in den Ordner Optionen entsprechende Änderungen vornimmt? Da gibts doch so ne Option "Bekannte Dateinamenserweiterungen ausblenden" oder so :gruebel:

2. Erscheint dann gar keine Endung?

Man liest sich, Stanlay :hi:

FriFra 2. Feb 2004 20:36

Re: Welche Dateiendung soll ich verwenden?
 
1. Nein, man sieht Die Endung nicht ;) (unter Win98, 98 SE, ME, 2000, XP, 2003 getestet)
2. Ja, es erscheint gar keine keine Endung. Die einzige Möglichkeit die Endung zu sehen ist wenn man auf die Datei über einen Open- bzw. SaveDialog zugreift und wenn deren Filter entspr. eingestellt ist sieht man den vollständigen Namen im Auswahlfenster, sonst aber nicht...

Du kannst Deine Datei dann aber immernoch "Meinedatei.ini.meineendung" nennen, dann sieht es aus wie eine ini mit anderem Icon ;) ... ich bin da mal zufällig drauf gestossen, als ich beim Download über NetAnts zip's mit anderem Symbol gesehen hab, obwohl ich mir immer alle extensions anzeigen lasse...

Stanlay Hanks 2. Feb 2004 20:40

Re: Welche Dateiendung soll ich verwenden?
 
Danke für die Antwort. Das wird gleich gespeichert. Kann man bestimmt später mal gut brauchen. :thumb:

Man liest sich, Stanlay :hi:

SirThornberry 2. Feb 2004 21:12

Re: Welche Dateiendung soll ich verwenden?
 
Ich nehm schon seit ewigkeiten die endung .sav Früher hatte ich udl aber seit windows 98 wird die endung ja irgendwie verwendet (sav = save / udl = user defined list)

Phoenix 2. Feb 2004 21:19

Re: Welche Dateiendung soll ich verwenden?
 
Es sind nach den alten Standards die Zeichen a-z, die Ziffern 0-9 und die Zeichen "_", "+" und "-" in Dateinamen und für die Dateinamenerweiterung erlaubt.

Das macht zusammen 39 Zeichen. 39*39*39 Kombinationsmöglichkeiten ergeben 59.319 verschiedene Kombinationsmöglichkeiten.

Ich denke, da wirst Du doch schon eine finden. z.B. 'Mein Eigenes Format' -> .mef
- und ich habe ehrlich gesagt noch nie eine .mef - Datei gesehen :)

SirThornberry 2. Feb 2004 21:26

Re: Welche Dateiendung soll ich verwenden?
 
@Frifra: Irgendwie bekomm ich das nicht hin - Ich hab unter HKey_Classes_Root\.mp3 einen Binärwert von "00 00 01 00" unter dem Namen EditFlags hinzugefügt aber es zeigt mir immer noch die dateiendung bei mp3s an.
.mp3 verweist bei mir auf winamp.file und auch darin hab ich das mit dem EditFlags probiert - auch ohne erfolg

FriFra 2. Feb 2004 21:47

Re: Welche Dateiendung soll ich verwenden?
 
:oops: Ups... da hab ich blödsinn geschrieben. Es muss ein Wert "NeverShowExt" eingefügt werden ;)

Ich verwende dafür immer folgende procedure:
Delphi-Quellcode:
procedure RegisterFileType(Extension: string; exepfad,
  description: string; IconIndex: integer);
var
  reg: TRegistry;
  Created: boolean;
  MyBin: array[0..3] of byte;
begin
  Created := False;
  try
    reg := TRegistry.Create;
    reg.RootKey := HKEY_CLASSES_ROOT;
    //create a new key --> .[Extension]
    reg.OpenKey('.' + Extension, True);
    try
      //create a new value for this key --> [Extension]file
      reg.Writestring('', Extension + 'file');
    finally
      reg.CloseKey;
    end;
    //create a new key --> [Extension]file
    reg.CreateKey(Extension + 'file');

    //write description
    reg.OpenKey(Extension + 'file', True);
    reg.Writestring('', description);
    reg.Writestring('NeverShowExt', '');
    if reg.ValueExists('AlwaysShowExt') = True then
      reg.DeleteValue('AlwaysShowExt');

    MyBin[0] := 0;
    MyBin[1] := 0;
    MyBin[2] := 1;
    MyBin[3] := 0;
    reg.WriteBinaryData('EditFlags', MyBin, 4);

    reg.CloseKey;

    //create a new key pcifile\DefaultIcon
    reg.OpenKey(Extension + 'file\DefaultIcon', True);
    //and create a value where the icon is stored --> c:\project1.exe,0
    if reg.Readstring('') <> exepfad + ',' + IntToStr(IconIndex) then
    begin
      Created := True;
      try
        reg.Writestring('', exepfad + ',' + IntToStr(IconIndex));
      finally
        reg.CloseKey;
      end;
      reg.OpenKey(Extension + 'file\shell\open\command', True);
      //create value where exefile is stored --> c:\project1.exe "%1"
      try
        reg.Writestring('', exepfad + ' "%1"');
      finally
        reg.CloseKey;
      end;
    end;
  finally
    reg.Free;
  end;
  if Created = True then
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

SirThornberry 2. Feb 2004 22:09

Re: Welche Dateiendung soll ich verwenden?
 
mit deiner Funktion klappts aber wenn ich bei einem bestehenden Typ
den schlüssel "NeverShowExt" hinzufüge und EditFlags setze gehts nicht :-/
Ich hab auch versucht den zweig der mit der procedure erstellt wurde zu exportieren und dann in der .reg datei die daten abzuändern aber auch da klappt es nicht wenn ich die regdatei dann ausführe. Geht das ganze eventuell für txtfile usw gar nicht?

FriFra 2. Feb 2004 22:12

Re: Welche Dateiendung soll ich verwenden?
 
Zitat:

Zitat von SirThornberry
aber wenn ich bei einem bestehenden Typ
den schlüssel "NeverShowExt" hinzufüge und EditFlags setze gehts nicht :-/

Das liegt daran, dass Windows eine solche Änderung "mitgeteilt" werden muss:
Delphi-Quellcode:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
Normalerweise sollte aber auch ein Neustart reichen, damit auch manuelle Änderungen wirksam werden.

SirThornberry 2. Feb 2004 22:22

Re: Welche Dateiendung soll ich verwenden?
 
Die Funktion SHChangeNotify wurde bei mir gar nicht erst gefunden und trotzdem hat es irgendwie geklappt wenn ich deine Funktion verwendet hab, nur eben nicht wenn ich direkt in der Registry geschrieben ahb... In welcher Unit ist SHChangeNotify??

FriFra 2. Feb 2004 22:24

Re: Welche Dateiendung soll ich verwenden?
 
Zitat:

Zitat von SirThornberry
In welcher Unit ist SHChangeNotify??

ShlObj

SirThornberry 2. Feb 2004 22:32

Re: Welche Dateiendung soll ich verwenden?
 
Thx, wenn ich SHChangeNotify verwende aktuallisiert er mir das was ich von hand in der registry geändert hat wirklich. Und ich dachte es klappt einfach ni... Daaaaaaaaaaaanke :-D

Bissl Optimierung für deinen Source:
mach aus
MyBin: array[0..3] of byte;
einfach
MyBin: Integer;

und aus
MyBin[0] := 0;
MyBin[1] := 0;
MyBin[2] := 1;
MyBin[3] := 0;
einfach
MyBin := 65536;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz