AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Unabhängig von Nummerierung Sections aus Ini lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Unabhängig von Nummerierung Sections aus Ini lesen

Ein Thema von Stanlay Hanks · begonnen am 18. Apr 2003 · letzter Beitrag vom 18. Apr 2003
Antwort Antwort
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

Unabhängig von Nummerierung Sections aus Ini lesen

  Alt 18. Apr 2003, 10:35
Hallo zusammen. Ich hatte schon mal ein ähnliches Problem gepostet. Ich hab's dann bleiben lassen und was neues probiert. Aber jetzt hab ich wieder ein ähnliches Problem.

Ich habe eine Ini-Datei die wie folgt aufgebaut ist:

----------------------------
[Allgemein]
Anzahl = 15 //Anzahl der Notizen in der Ini Datei

[Notiz1] //Eigentliche Notiz
Betreff = Betreff 1

[Notiz2]
Betreff = Betreff 2

usw....
----------------------------

Mein Problem ist es, diese Notizen in eine Listbox zu bekommen.

Ich hab das so gemacht:

Delphi-Quellcode:
procedure TForm1.NotizenLesen;
begin
Try
NIni := TIniFile.Create(PathS+'Notizen.ini'); //PathS ist der
                                                  Programmordner
Anzahl :=NIni.ReadInteger('Allgemein','Anzahl',0);
IF Anzahl <> 0 THEN
begin
For Anzahl := 1 To Anzahl do begin
IF NIni.SectionExists('Notiz'+IntToStr(Anzahl)) THEN
ListBox1.Items.Add('Notiz' + IntToStr(Anzahl));
end;
end;
finally
NIni.Free;
end;
end;
Das funktioniert auch wunderbar, wenn die Notizen alle schön durchnummeriert sind. Also [Notiz1],[Notiz2],[Notiz3] usw. Aber wenn ich dann eine Notiz lösche, lösche ich einfach die Section in der die Notiz steht. Also sind die Notizen nicht mehr durchnummeriert.

Gibt es einen Weg, unabhängig von der Nummerierung alle Einträge in die Listbox zu bekommen???

Danke schon mal im Voraus. Man ließt sich. Stanlay
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 18. Apr 2003, 10:38
Hallo,

kleiner Tip am Rande.

IniFile.Create vor das try!
Im im -Teil, wäre es besser FreeAndNil(Nini); zu nehmen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 18. Apr 2003, 10:41
Hi,
die einzige wirkliche Lösung is das INI-File nach jedem löschen komplett neu zuschreiben.Sonst hast du immer das beschreibene Chaos + einen oder mehr gratis Lesefehler weil da nen paar Sectionen nicht vorhanden sind

MfG BungeeBug
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4
  Alt 18. Apr 2003, 10:55
Du meinst also, dass man die Ini Datei kopieren, auslesen und dann Schritt für Schritt neu aufbauen soll, oder? Klingt irgendwie vernüftig.

Zu Daniel: Was ist der Unterschied zwischen NIni.Free und
FreeAndNil(Nini); ? Hab mal in der Hilfe nachgeschaut:

"Die Prozedur gibt eine Objektreferenz frei und ersetzt die Referenz mit nil."

Danke trotzdem für die schnellen Antworten
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#5
  Alt 18. Apr 2003, 11:13
Free gibt nur den Speicher frei und FreeAndnil setzt zusätzlich den Zeiger auf den Wert Nil. Im Programm kannst Du dann abfragen
Code:
if ... <> nil then
Aber: In Deinem Fall solltest Du die Variable NIni lokal deklarieren, da Du diese auch nur lokal benötigst:
Delphi-Quellcode:
Procedure ...
var
  Nini : TIniFile;
begin
  Nini := ...
  try
    ...
  finally
    NIni.Free;
  end;
  ...
FreeAndNil geht auch, gibt aber hier keinen Sinn mehr, da auf NIni nach dem Verlassen der Procedure kein Zugriff mehr möglich ist.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 18. Apr 2003, 13:55
Moin Stanlay,

schau Dir auch mal die Methoden ReadSection / ReadSectionValues von TIniFile an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7
  Alt 18. Apr 2003, 14:28
Genial. Dann kann ich mir ja die ganze Sucherei mit allen möglichen Schleifen sparen. Vielen Dank
  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 13:34 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