AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

inifile beschreiben

Ein Thema von HolgerCW · begonnen am 22. Nov 2010 · letzter Beitrag vom 22. Nov 2010
Antwort Antwort
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

inifile beschreiben

  Alt 22. Nov 2010, 12:31
Delphi-Version: 2006
Hallo zusammen,

wie beschreibe ich ein inifile ?

Auslesen habe ich bisher so gemacht:

Delphi-Quellcode:
function MyGetInifileValue(myIniFile, mysection, myentry, mydefault:string):string;
var
 myIni:TInifile;
 strtemp:string;
 inipath:string;
begin

 inipath := ExtractFilePath(Application.ExeName);

 if Copy(inipath,Length(inipath),1) <> '\then
  inipath := inipath +'\';

 myini := TInifile.Create(inipath+myIniFile+'.ini');
 strtemp := myini.ReadString(mysection,myentry,mydefault);

 myGetInifileValue := strtemp;
 myini.Free;

end;
Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: inifile beschreiben

  Alt 22. Nov 2010, 12:39
Hallo,

zu "ReadString" gibt es z. B. auch das Pendant "WriteString".


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

AW: inifile beschreiben

  Alt 22. Nov 2010, 12:42
Bin ich denn eben so daneben gewesen. Hatte mich schon gewundert das mir das nciht angeboten wurde.

Naja. Klappt nun.

Danke für den Klapps auf den Hinterkopf.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: inifile beschreiben

  Alt 22. Nov 2010, 12:45
Und wenn du schon dabei bist, mach es gleich ordentlich. Sollte das Lesen/Schreiben fehlschlagen, wird die Ini-Datei nicht mehr freigegeben. Daher gibt es die sog. Ressourcenschutzblöcke:
Delphi-Quellcode:
myini := TInifile.Create(inipath + myIniFile + '.ini');
try
  strtemp := myini.ReadString(mysection, myentry, mydefault);
  myGetInifileValue := strtemp;
finally
  myini.Free;
  // oder FreeAndNil(myini);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: inifile beschreiben

  Alt 22. Nov 2010, 12:56
Delphi-Quellcode:
function MyGetInifileValue(myIniFile, mysection, myentry, mydefault:string):string;
var
 myIni:TInifile;
 strtemp:string;
 inipath:string;
begin

 inipath := ExtractFilePath(Application.ExeName);
  // Das kann man sich komplett schenken, denn ExtractFilePath liefert den Pfad
  // und der ist immer mit abschliessendem PathDelimiter definiert
  // ExtractFilePath( Application.ExeName ) => '<Verzeichnisse>\'
  // ExtractFileDir( Application.ExeName ) => '<Verzeichnisse>'
 if Copy(inipath,Length(inipath),1) <> '\then
  inipath := inipath +'\';

 myini := TInifile.Create(inipath+myIniFile+'.ini');
 strtemp := myini.ReadString(mysection,myentry,mydefault);

 myGetInifileValue := strtemp;
 myini.Free;

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

AW: inifile beschreiben

  Alt 22. Nov 2010, 12:59
Danke.

Habe es übernommen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: inifile beschreiben

  Alt 22. Nov 2010, 13:04
@Sir Rufo: Und wenn ich die Ini-Datei dahin haben möchte, wo sie hingehört, nämlich ins Anwendungsverzeichnis des Benutzers?

Und das mit dem abschließenden Pfadtrennzeichen kann man auch über IncludeTrailingPathDelimiter regeln.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (22. Nov 2010 um 13:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: inifile beschreiben

  Alt 22. Nov 2010, 13:15
Zitat:
Delphi-Quellcode:
if Copy(inipath,Length(inipath),1) <> '\then
  inipath := inipath +'\';
kennst du schon Delphi-Referenz durchsuchenIncludeTrailingPathDelimiter (alt Delphi-Referenz durchsuchenIncludeTrailingBackslash)?

PS: Wenn eine Datei mit Pfad übergeben wird, dann liefert Delphi-Referenz durchsuchenExtractFilePath immer ein abschließendes '\' zurück.
Im Gegensatz zu Delphi-Referenz durchsuchenExtractFileDir.
(IncludeTrailingPathDelimiter beachtet übrigens diesen Sonderfall)

PSS: Wenn inipath keinen Pfad wäre, sondern leer, dann würde dieses IF Probleme bereiten.

Aus 'test.exe' würde '\deine.ini' was die INI ins Hauptverzeichnis legen würde, wärend die EXE im aktiven Arbeitsverzeichnis liegt.



Also falls du solche '\'-Operationen öfters mal machst.
(Application.ExeName liefert zum Glück immer einen Pfad, so daß dein IF hier nix kaputt machen kann und da immer ein '\' macht dieses IF garnichts, außer sinnlos Rechenzeit zu verschwenden, für das Copy und den Vergleich)
$2B or not $2B

Geändert von himitsu (22. Nov 2010 um 13:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: inifile beschreiben

  Alt 22. Nov 2010, 18:19
@Sir Rufo: Und wenn ich die Ini-Datei dahin haben möchte, wo sie hingehört, nämlich ins Anwendungsverzeichnis des Benutzers?
Dann bin ich mit ExtractFilePath( Application.ExeName ) völlig auf dem Holzweg.
Aber darum ging es mir ja gar nicht, sondern um diese umständliche PathDelimiter-Orgie, die zudem völlig überflüssig ist/war

Weil dann muss ich mir den Pfad über die SpecialFolders holen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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