![]() |
Delphi-Version: 5
Ini-File aus dem Speicherlesen
Hallo zusammen,
ich wollte fragen ob es möglich ist ein Ini-File dirket aus dem Speicher zu lesen? Oder ob ich zwangsweise über die Platte gehen muss? Kann ich vllt irgendwie eine Speicheradresse als Filename angeben? Ich hab leider den Eindruck das es schneller geht eine Ini-Memomry-Klasse neu aufzubauen. Vielen Dank, Tobi @EDIT: Kann ich die Klasse TMemIniFile nutzen? [OT:] Wie bekomme ich das "Delphi Version 5" weg? -> Meine Delphi Version RAD 2010. |
AW: Ini-File aus dem Speicherlesen
Mit TMemIniFile bist Du auf der richtigen Spur, sofern ich Dich richtig verstanden habe.
|
AW: Ini-File aus dem Speicherlesen
Das Problem was ich mit der TMemIniFile habe ist:
Zitat:
Delphi-Quellcode:
TMemIniFile = class(TCustomIniFile)
private FSections: TStringList; FEncoding: TEncoding; function AddSection(const Section: string): TStrings; function GetCaseSensitive: Boolean; procedure LoadValues; procedure SetCaseSensitive(Value: Boolean); public constructor Create(const FileName: string); overload; constructor Create(const FileName: string; Encoding: TEncoding); overload; destructor Destroy; override; procedure Clear; procedure DeleteKey(const Section, Ident: String); override; procedure EraseSection(const Section: string); override; procedure GetStrings(List: TStrings); procedure ReadSection(const Section: string; Strings: TStrings); override; procedure ReadSections(Strings: TStrings); override; procedure ReadSectionValues(const Section: string; Strings: TStrings); override; function ReadString(const Section, Ident, Default: string): string; override; procedure Rename(const FileName: string; Reload: Boolean); procedure SetStrings(List: TStrings); procedure UpdateFile; override; procedure WriteString(const Section, Ident, Value: String); override; property CaseSensitive: Boolean read GetCaseSensitive write SetCaseSensitive; property Encoding: TEncoding read FEncoding write FEncoding; end; |
AW: Ini-File aus dem Speicherlesen
Wenn Du hierarchische Strukturen brauchst, dann Schau Dir mal XML an.
TMemIniFile entspricht TIniFile, nur dass die Sektionen im Hauptspeicher zwischengespeichert werden. |
AW: Ini-File aus dem Speicherlesen
Zitat:
Zitat:
|
AW: Ini-File aus dem Speicherlesen
Was hat du eigentlich vor?
|
AW: Ini-File aus dem Speicherlesen
Szenario:
Ich bekomme eine Email, diese hole ich mir via Indy ab, in dieser Mail stehen Einstellungen diese. Einstellungen habe ich im Projektantrag (es ist ein Abschlussprojekt bei der IHK), als Value-Pairs deklariert weil ich dachte, hey da nimmst du einfach nen Ini-File und wola alles ist gut. -> Pustekuchen :( Diese Email stellt das Programm ein, ich verarbeite die angehängten Daten und schreibe eine Mail zurück. Jetzt stehe ich vor dem Problem, ich habe die Mail im Speicher. Der Sender ist Authenfiziert, und ich will nicht extra über das FileSystem auf die im Speicher liegende "Ini-Datei" zugreifen, es ginge sieht aber blöd aus und braucht lang :(. Viele Grüße, Tobi |
AW: Ini-File aus dem Speicherlesen
Du brauchst keine Datei (es sei denn, Du willst die gesetzten Werte auch dauerhaft ablegen). In jeder Read-Methode gibt es als letzten Parameter einen Defaultwert, welcher genommen wird, wenn entweder die Section oder der Ident nicht gefunden wird. Und setzt Du einen Wert mittels einer Write-Methode, dann geschieht dies auch nur im Speicher.
BTW: Mit der Hierarchie ist vermutlich gemeint, dass die Sections eine Liste bilden, in der jede Section wiederum eine Liste der Ident-Wertepaare enthält. |
AW: Ini-File aus dem Speicherlesen
Man kann über .SetStrings eine Datei z.B. über eine TStringList direkt in TMemIniFile reinladen.
Beim Erstellen der TMemIniFile einfach keinen Dateinamen
Delphi-Quellcode:
angeben und danach dann
.Create('');
Delphi-Quellcode:
.
.SetStrings
|
AW: Ini-File aus dem Speicherlesen
Ah :), mal wieder zu kompliziert gedacht.
Dank himitsu, es geht :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 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