Entwickler-Ecke
Dateizugriff - INI Datei öffnen
rafi@work - Fr 20.08.04 12:49
Titel: INI Datei öffnen
Hallo zusammen
Ich muss eine INI Datei mit einem Klick auf einen Button öffnen können. So wie auch eine INI geöffnet wird, wenn man sie im Windows doppelklickt. Ich habe die Funktion 'FileOpen' einwenig studiert, aber damit funktioniert es IMHO nicht. Hat jemand eine Idee?
Gruss
Sprint - Fr 20.08.04 13:17
Mit ShellExecute zum Beispiel.
Quelltext
1:
| ShellExecute(0, 'open', IniFilename, nil, nil, SW_SHOWNORMAL); |
raven_22 - Do 02.09.04 02:06
Hi rafi@work !
Was willst du mit der INI machen ?
Kennst du den Inhalt der INI ?
Zum auslesen der Werte brauchst du die Sektion und den Name des zu lesenden Werts.
Solltest du aber nur den gesamten Inhalt anzeigen wollen, dann schau dir den Code mal an.
LG raven 8)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| unit Unit1;
interface
uses ...;
type TForm1 = class(TForm) OpenDialog1: TOpenDialog; Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
function Get_Ini(IniFile:string):tstringlist; begin Result:=Tstringlist.Create; Result.LoadFromFile(IniFile); end;
procedure TForm1.Button1Click(Sender: TObject); begin OpenDialog1.Filter:='Ini-File (*.ini)|*.ini'; OpenDialog1.Execute; Memo1.ScrollBars:=ssVertical; Memo1.Clear; Memo1.lines:=Get_Ini(OpenDialog1.FileName); end;
end. |
bms - Do 02.09.04 09:19
Titel: Re: INI Datei öffnen
rafi@work hat folgendes geschrieben: |
Ich muss eine INI Datei mit einem Klick auf einen Button öffnen können. So wie auch eine INI geöffnet wird, wenn man sie im Windows doppelklickt. Ich habe die Funktion 'FileOpen' einwenig studiert, aber damit funktioniert es IMHO nicht. Hat jemand eine Idee? |
Vergiss solche Satzteile wie "mit einem Klick auf einen Button öffnen können". Das interessiert erst einmal keinen. Das ist ein Programmiererforum und ein Klick auf einen Button ist nur ein Ereignis. Du kannst es genauso mit einem Klick auf einem Label oder Image ereichen. Wenn du also Programmierer werden willst, dann gewöhn dir sowas wie "ich will auf einen Button klicken und dann soll das passieren" ab. Der Buttonklick interessiert keinen, macht dich vor anderen aber zu einem absoluten Anfänger. Denn nur Anfänger stellen die Fragen so.
Dann solltest du auch sowas wie "wenn man sie im Windows doppelklickt" vermeiden. Im Windows kann man nicht doppelklicken, höhstens im Explorer oder auf dem Desktop usw. Werde in Zukunft etwas genauer.
Deine Fragen könnte so klingen:
"Ich will meine INI Datei im Notepad (bzw. Editor) anzeigen. Wie kann ich das erreichen? Wie kann ich eine Datei öffnen? Ich hab mir die Funktion 'FileOpen' angesehen, aber damit geht es nicht. Hat jemand eine Idee?"
Dann braucht auch keiner zu raten was du meinst.
raven_22 - Do 02.09.04 16:31
@bms
Sicher willst du nur freundlich sein und ihm weiterhelfen.
Du kommst dabei aber einweinig wie ein Oberlehrer rüber.
Vielleicht sehe dass nur ich so.
Ich hoffe du nimmst es mir nicht übel, dass mit dem Oberlehrer.
Anfänger helfen ist ja vollkommen in Ordnung, aber Nachhilfe in Deutsch !?
Ich habe hier schon viel schlimmeres gelesen.
Wenn man nicht ganz so denkfaul ist, versteht man schon was er meint.
@rafi@work
Bitte schreibt noch mal etwas genauer was du eigentlich machen willst.
Willst du vielleicht dass systemweit alle Ini-Dateien mit deinem Programm geöffnet werden ?
Soll heißen, man öffnet eine Ini-Datei, dein Programm startet automatisch und die Ini-Datei kann mit deinem Programm angezeigt oder bearbeitet werden.
Oder willst du nur eine Ini-Datei in deinem Programm öffnen/laden ?
Wenn du dein Programm als Standardprogramm zum öffnen von INI-Dateien nutzen willst, so kannst du das mit folgendem Code machen.
LG raven 8)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
uses Registry;
Procedure Set_IniApp; var Reg:Tregistry; begin
Reg:=Tregistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; Reg.OpenKey('inifile\shell\open\command',true);
if Reg.ValueExists('Org') = false then begin Reg.WriteExpandString('Org',Reg.ReadString('')); end;
if reg.ValueExists('Org') = true then begin Reg.WriteExpandString('',Application.ExeName+' %1'); Showmessage('Änderung geschreiben !'); end else showmessage('Fehler bei schreiben !');
Reg.Free; end;
Procedure DEL_IniApp; var Reg:Tregistry; begin
Reg:=Tregistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; Reg.OpenKey('inifile\shell\open\command',true); if Reg.ValueExists('Org') = false then begin reg.WriteExpandString('','%SystemRoot%\System32\NOTEPAD.EXE %1'); end else Reg.WriteExpandString('',reg.ReadString('Org')); Reg.DeleteValue('Org');
if Reg.ValueExists('') = true then begin Showmessage('Änderung geschrieben !'); end else Showmessage('Fehler bei schreiben !');
Reg.Free; end;
procedure TForm1.FormCreate(Sender: TObject); begin
Button1.Caption:='App Setzen'; Button2.Caption:='App Löschen';
if Paramcount > 0 then begin Memo1.ScrollBars:=ssVertical; Memo1.Clear; memo1.Lines.LoadFromFile(ParamStr(1)); end;
end;
procedure TForm1.Button1Click(Sender: TObject); begin Set_IniApp; end;
procedure TForm1.Button2Click(Sender: TObject); begin DEL_IniApp; end;
end. |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!