Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ganzes INI-Segment in einem Memo? o.O (https://www.delphipraxis.net/60385-ganzes-ini-segment-einem-memo-o-o.html)

Master_RC 6. Jan 2006 01:43


Ganzes INI-Segment in einem Memo? o.O
 
hi leutz!

Ich hab gerade vor, eine INI so auszulesen, dass bei der Auswahl in einem Memo das ganze Segment zu sehen ist.

Beispiel:
Wenn das INI-Segment so aussieht:

[Segment 1]
Bla=285
Bla2=uodishfs
Mann=giufhg

dann sollen auch all diese 4 Zeilen im Memo stehen, nur... wie mach ich das? :gruebel:

//EDIT:
Wäre schon, wenn auch Kommentare mit reingeschrieben würden, also:

[Segment 1]
//Kommentar
Bla=285
Bla2=uodishfs
Mann=giufhg

oder so :)

chaosben 6. Jan 2006 05:23

Re: Ganzes INI-Segment in einem Memo? o.O
 
Zitat:

ReadSectionValues (Methode von TIniFile)
Delphi-Syntax:
Delphi-Quellcode:
procedure ReadSectionValues(const Section: String; Strings: TStrings); override;
Beschreibung
ReadSectionValues liest die Schlüssel und die Werte aller Schlüssel eines Abschnitts der INI-Datei in eine String-Listenobjekt (TStrings-Nachkomme) ein. Die Schlüsselnamen und die Werte werden der String-Liste in der Form KeyName=ValueName hinzugefügt.
Der String Section bezeichnet den Abschnitt in der Datei, aus dem die Schlüsselwerte gelesen werden sollen.
Der Parameter Strings bezeichnet das String-Listenobjekt, in das die Werte eingelesen werden sollen. Der Parameter Strings
kann auf ein TStrings-Objekt zeigen oder auf eine Komponenteneigenschaft, wie z.B. Items für eine TListBox-Komponente, die wiederum ein TStrings-Objekt ist.
Was deine Kommentare angeht wirds wohl schwierig werden. Probiers einfach mal aus, ob der INI-Parser die Kommentare mitliefert. Wenn nicht kannst du ja immer noch einen Schlüssel namens "Comment" erfinden.

Luckie 6. Jan 2006 05:32

Re: Ganzes INI-Segment in einem Memo? o.O
 
Da Kommentare im Ini-Datei-Format nicht vorgesehen sind, glaube ich, nicht dass die In-Klasse selbige auslesen kann. Du müsstes also die Klasse selber entsprechend deinen Wünschen erweiteren. Das wäre für mich eine zu mindest eine saubere Lösing: Eine Neue Klasse TIniEx ableiten und entsprechend ergänzen.

Master_RC 11. Jan 2006 19:38

Re: Ganzes INI-Segment in einem Memo? o.O
 
Nun denn, dann kommen eben Kommentar enicht mit ;)

Danke euch beiden, klappt einwandfrei!

marabu 11. Jan 2006 20:27

Re: Ganzes INI-Segment in einem Memo? o.O
 
Hi.

TMemIniFile lässt die Steuerdatei fast unverändert - Leerzeilen werden eliminiert, aber meine Kommentare bleiben erhalten:

Delphi-Quellcode:
unit DemoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IniFiles;

type
  TDemoForm = class(TForm)
    Memo: TMemo;
    ActionPanel: TPanel;
    Button: TButton;
    ComboBox: TComboBox;
    Edit: TEdit;
    procedure ButtonClick(Sender: TObject);
    procedure ComboBoxChange(Sender: TObject);
  private
    mif: TMemIniFile;
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  if FileExists(Edit.Text) then
  begin
    FreeAndNil(mif);
    mif := TMemIniFile.Create(Edit.Text);
    mif.ReadSections(ComboBox.Items);
  end else ComboBox.Clear;
end;

procedure TDemoForm.ComboBoxChange(Sender: TObject);
begin
  mif.ReadSectionValues(ComboBox.Text, Memo.Lines);
end;

end.
Grüße vom marabu

Helmi 12. Jan 2006 14:02

Re: Ganzes INI-Segment in einem Memo? o.O
 
Schau dir mal dort link TIniList an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 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