![]() |
Ini-Dateien und ReadSection
Moin,
ich verstehe etwas bei INI-Dateien nicht ganz ... angenommen ich habe folgende Ini-Datei:
Delphi-Quellcode:
Angebommen ich möchte die Buchstaben A-F in eine Stringlist bekommen, wie mache ich das ??
[ADNummern]
1. AD = A 2. AD = B 3. AD = C 4. AD = D 5. AD = E 6. AD = F Mit
Delphi-Quellcode:
bekomme ich die Texte "1. AD", "2. AD" usw. in die TStringList
Ini.ReadSection('ADNummern', TStringList);
Mit
Delphi-Quellcode:
bekomme ich "ADNummern" usw. in die TStringList
Ini.ReadSection[B]S[/B]('ADNummern', TStringList);
Natürlich kann ich die Texte einfach umdrehen und in diesem Fall es so schreiben ... aber entweder ich denke falsch oder es ist komplett anders als bei allen anderen Ini-Einträgen.
Delphi-Quellcode:
Oder mache ich da was vollkommen falsch ??
[ADNummern]
A = 1. AD B = 2. AD C = 3. AD D = 4. AD E = 5. AD F = 6. AD Gruß Hans |
AW: Ini-Dateien und ReadSection
Hallo,
was du willst die die Werte, also die Values. Probier mal
Delphi-Quellcode:
Ini.ReadSectionValues
|
AW: Ini-Dateien und ReadSection
Zitat:
Wobei ich das hier auch viel zu umständlich ansehe
Delphi-Quellcode:
[ADNummern]
1. AD = A 2. AD = B 3. AD = C 4. AD = D 5. AD = E 6. AD = F |
AW: Ini-Dateien und ReadSection
PS, im Gegensatz zu XML sind in INI/CSV/usw. führende&folgende Lehrzeichen gültig und werden nicht automatisch entfernt.
Der Name "1. AD " hat also den Valud " A". |
AW: Ini-Dateien und ReadSection
Hallo,
wie wär's mit:
Delphi-Quellcode:
sl.Add(my_ini.ReadString('ADNummern', '1. AD', '1. AD-Error'));
sl.Add(my_ini.ReadString('ADNummern', '2. AD', '2. AD-Error')); sl.Add(my_ini.ReadString('ADNummern', '3. AD', '3. AD-Error')); ... sl.Add(my_ini.ReadString('ADNummern', '6. AD', '6. AD-Error')); |
AW: Ini-Dateien und ReadSection
Delphi-Quellcode:
Nun ja, im Allgemeinen ist eine INI eine Liste aus Name&Wert-Paaren,
Ini.ReadSection('ADNummern', SL);
for i := SL.Count - 1 downto 0 do SL[i] := SL.ValueByIndex[i]; wobei immer einem "eindeutigen" Name irgendein "beliebiger" Wert zugewiesen ist. (gleiche Werte können auch mehrmals vorkommen) Da ein Wert praktisch ohne seinen Namen keine Bedeutung besitzt, gibt es standardmäßig auch keine Funktion, um alle Werte ohne ihren Namen auszulesen. |
AW: Ini-Dateien und ReadSection
Mal klarer gefragt: Was ist der Bezeichner und was ist der Wert?
|
AW: Ini-Dateien und ReadSection
Moin,
Zitat:
Delphi-Quellcode:
bekomme ich aber beide Seiten vom Gleichheitszeichen. :-(
Ini.ReadSectionValues
ich will aber nur die rechte Seite wie sonst auch. Hans |
AW: Ini-Dateien und ReadSection
Zitat:
Hans |
AW: Ini-Dateien und ReadSection
Zitat:
führe ini.ReadSectionValue aus und schreibe in eine StringList danach kannst du folgendes machen:
Delphi-Quellcode:
So bekommst du den einzelnen Wert jeder Zeile.
for i := 0 to Pred(StringList.Items.Count) do
S := Stringlist.ValueFromIndex[i]; |
AW: Ini-Dateien und ReadSection
Zitat:
Zur Erklärung: Ich habe eine Kundenkartei, da steht unter anderem drin welcher AD zuständig ist, allerdings nicht so einfach wie hier sondern einfach nur mit Nummern willkührlich gewählt und die NICHT in einer Reihenfolge sind. Außerdem hat natürlich jeder AD eine Email-Adresse. Mein einfacher Ansatz war: In der INI-Datei eine Section mit den Nummern der ADs und eine zweite mit den Email-Adressen .. also so:
Delphi-Quellcode:
Dann einfach in zwei TStringList einlesen, die gesuchte Nummer in der ersten TSringList suchen und dann die entsprechende EmailAdresse aus der zweiten nehmen.
[ADNummern]
1. AD = 1 2. AD = 2 3. AD = 5 4. AD = 9 5. AD = 12 6. AD = 25 [ADAdressen] 1. AD = h.bothur@email.de 2. AD = h.bothur@email.de 3. AD = ke.bothur@email.de 4. AD = m.mueller@email.de 5. AD = j.meyer@email.de 6. AD = h.schulze@email.de Und da ich sowieso eine INI habe fand ich die Idee nicht schlecht. Es geht ja auch wenn ich mit
Delphi-Quellcode:
das einlese - dann muss ich eben nur die Reihenfolge tauschen.
ReadSection
es hat mich eben nur gewundert warum das so ist. Hans |
AW: Ini-Dateien und ReadSection
Zitat:
Hans |
AW: Ini-Dateien und ReadSection
Zitat:
Zitat:
Du hast dir doch selber schon beantwortet, dass es "falsch" ist, und das zeigt sogar dein Beispiel.
Code:
Wenn man hier Name und Wert tauscht, dann geht das nicht auf, da dann der Name "h.bothur@email.de" doppelt wäre.
[ADAdressen]
1. AD = h.bothur@email.de 2. AD = h.bothur@email.de 3. AD = ke.bothur@email.de 4. AD = m.mueller@email.de 5. AD = j.meyer@email.de 6. AD = h.schulze@email.de Zum Glück hat niemand meinen Beitrag gelesen. :roll: hmmmm
Code:
[AD]
1=h.bothur@email.de 2=h.bothur@email.de 5=ke.bothur@email.de 9=m.mueller@email.de 12=j.meyer@email.de 25=h.schulze@email.de |
AW: Ini-Dateien und ReadSection
Irgendwie sieht es so aus, als wolltest Du Datenbank-Daten in eine Ini-Datei quetschen.
Eines der üblichen Austauschformate XML,CSV wäre hier wohl besser geeignet. Gruß K-H |
AW: Ini-Dateien und ReadSection
Moin...:P
Zitat:
Zitat:
|
AW: Ini-Dateien und ReadSection
Zitat:
Gruß Hans |
AW: Ini-Dateien und ReadSection
Schau mal nach TClientDataSet, da gibt es auch ein LoadFromFile und ein SaveToFile. Damit hast Du dann auch eine Datei, ob das jetzt nun 'ne Ini ist oder 'ne CSV oder sonst was ist. Für Deine Daten benötigst Du exakt eine Datei.
Aber beim Programmieraufwand können da Welten dazwischen liegen. Und Inis sind bei Datenbanken gewiss nicht die erste Wahl. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz