AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[ini] leere Sections schreiben

Ein Thema von _frank_ · begonnen am 18. Jul 2006 · letzter Beitrag vom 18. Jul 2006
Antwort Antwort
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#1

[ini] leere Sections schreiben

  Alt 18. Jul 2006, 18:03
Hi,
gibt es eine möglichkeit leere Sections zu erstellen?
habe keine Methode dafür in der Hilfe dazu gefunden.
sonst muss ich die ini per Stringlist erzeugen, aber vielleicht gehts einfacher...

Gruß Frank
  Mit Zitat antworten Zitat
HuxXx
(Gast)

n/a Beiträge
 
#2

Re: [ini] leere Sections schreiben

  Alt 18. Jul 2006, 18:21
Mhmm..., erstmal eine Section mit Schlüsseln erstellen, danach den erzeugten Schlüssel einfach wieder löschen. (DeleteKey).

Delphi-Quellcode:
procedure Beischspiel;
var ini: TInifile;
begin
ini:= TIniFile.Create('C:\hiyah.ini');
ini.WriteString('Deine Section','das_wird_geloescht','Hiyaaah!');
ini.DeleteKey('Deine Section','das_wird_geloescht');
ini.Free;
end;
Habs nicht getestet, aber müsste eigentlich funktionieren.

Greetz by Hux
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: [ini] leere Sections schreiben

  Alt 18. Jul 2006, 18:28
Zum Beispiel so:
WritePrivateProfileSection(PChar('EmptySection'), PChar(#0#0), PChar('c:\Temp.ini'));
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: [ini] leere Sections schreiben

  Alt 18. Jul 2006, 19:26
danke funktioniert super aber warum nicht

WritePrivateProfileSection(PChar(tn.Text), '', PChar(extractfilepath(paramstr(0))+ininame))

PCHAR(#0#0) erzeugt doch auch nen leeren wert.

hab übrigends mitbekommen, dass WriteString(section,'','') ne AV in ntdll erzeugt (D3)

Die andere lösung ist mir bisschen zu intensiv, da es ziemlich viele sections sein können...
es gibt so wies aussieht auch keine Möglichkeit, die ini komplett leer zu machen oder Kommentare (Zeilen mit ; am anfang) zu schreiben.

Gruß Frank
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: [ini] leere Sections schreiben

  Alt 18. Jul 2006, 20:28
Hallo.

Zitat von _frank_:
da es ziemlich viele sections sein können...
Jeder Schreibzugriff mit den alten WInAPI Funfunktionen WritePrivateProfile... list die INI-Datei einmal komplett in den Hauptspeicher und schreibt sie dann auch sofort wieder auf die Platte. Besser ist da der gepufferte Einsatz von TMemIniFile, wobei auch die Größenbeschränkung für INI-Dateien fällt.

Zitat von _frank_:
es gibt so wies aussieht auch keine Möglichkeit, die ini komplett leer zu machen
Dann schon: einfach die Methode Clear() aufrufen.

Zitat von _frank_:
oder Kommentare (Zeilen mit ; am anfang) zu schreiben.
Diese Funktionalität kostet nichts extra, wenn du das Semikolon einfach als Präfix des Keys einsetzt. Ansonsten kannst du dir ja eine eigene Komponente von TMemIniFile ableiten.

Wenn du wirklich mit D3 arbeitest, dann könntest du TBigIniFile von Edy Hinzen einsetzen - das obige gilt dann sinngemäß.

Grüße vom marabu
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:07 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