AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein stringlist zu filestream , filestream zu datei
Thema durchsuchen
Ansicht
Themen-Optionen

stringlist zu filestream , filestream zu datei

Ein Thema von davtix · begonnen am 2. Jan 2018 · letzter Beitrag vom 3. Jan 2018
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#1

AW: stringlist zu filestream , filestream zu datei

  Alt 3. Jan 2018, 11:15
Es würde also ein Nachfahre von TMemIniFile ausreichen, der eine zusätzliche Methode für's Speichern bekommt. Ungefähr sowas:
Delphi-Quellcode:
Type
  TMyMemIniFile = class(TMemIniFile)
    FFileStream : TFileStream;
  private
    procedure LoadValues; override;
  public
    constructor Create(st : TFileStream); override;
    procedure UpdateSream;
  end;

constructor TCustomIniFile.Create(st : TFileStream);
begin
  FFileStream := st;
end;

procedure TMyMemIniFile.UpdateStream;
var
  List: TStringList;
begin
  List := TStringList.Create;
  try
    GetStrings(List);
    List.SaveToStream(FFileStream, FEncoding);
  finally
    List.Free;
  end;
  Modified := False;
end;

procedure TMyMemIniFile.LoadValues;
var
  List: TStringList;
begin
  if Assigned(fFileStream) then
  begin
    List := TStringList.Create;
    try
      List.LoadFromStream(fFileStream);
      SetStrings(List);
    finally
      List.Free;
    end;
  end
  else
    Clear;
end;
Ungetest hingedaddelt. Und ggfls. muss man mal schauen, was sonst noch so angepasst werden muss.

Eine ggfls. erwünschte Verschlüsselung bzw. Entschlüsselung ließe sich aber sicherlich dann direkt im LoadValue bzw. im UpdateStream mit einbauen.

Man könnte aber auch bei der bisherigen, dateibasierten, Variante bleiben und nur die Routinen überschreiben, die für das Laden bzw. Speichern der Datei verantwortlich sind. Damit wäre das Ganze für bestehende Implementierungen (weitgehend) transparent. Man muss halt dann nur dort, wie bisher sowas wie ini : TMemIniFile; ini := TMemInifile.Create('dateiname'); steht, aus TMemIniFile TMyMemIniFile machen. Der Rest der bisherigen Implementierungen dürfte von der Änderung unbelastet bleiben.
  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 18:55 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