AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Strings kodiert in ini-Datei

Ein Thema von marcibaer · begonnen am 7. Dez 2011 · letzter Beitrag vom 8. Dez 2011
Antwort Antwort
marcibaer

Registriert seit: 27. Sep 2006
Ort: Inden
75 Beiträge
 
Delphi XE2 Professional
 
#1

Strings kodiert in ini-Datei

  Alt 7. Dez 2011, 20:00
Hallo zusammen!

Zum Kodieren von Strings habe ich bisher immer so was wie
  Eintrag[i] := CHR(Ord(Eintrag[i]) XOR Werte[i]); benutzt, was auch soweit gut klappt.
Beim Speichern von derart kodierten Strings in winer ini-Datei hatte ich
aber schon mehrmals Probleme - so wird z.B. ein Space-Zeichen am Anfang
oder Ende beim Einlesen der ini-Datei "verschluckt" bzw bei einem #0 wird
der String halt beim Einlesen beendet.
Gibt es Möglichkeiten, solche Probleme von Vornherein auszuschließen?!
Muß ich eine andere Kodierungsart wählen?

Vielen Dank für Eure Hilfe!
Marc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

AW: Strings kodiert in ini-Datei

  Alt 7. Dez 2011, 20:10
Dann mußt du es eben so kodieren verschlüsseln, daß solche Zeichenkonstellationen nicht entstehen?

XOR alleine ist aber nicht wirklich für sowas geeignet, da man nicht direkt auf solche Probleme eingehen kann, um ein bestimmtes ausgabeformat zu erziehlen.




Oder du kodierst es eben, nach der Verschlüsselung, in einem Format, welches keine Probleme bereitet.

HEX, Base64 usw.

Möglich wäre auch
XOR über den Text, dann die Bytes halbieren und jeweils als untere 4 Bit z.B. zusammen mit einem "OR $60" abspeichern
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Dez 2011 um 20:16 Uhr)
  Mit Zitat antworten Zitat
marcibaer

Registriert seit: 27. Sep 2006
Ort: Inden
75 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Strings kodiert in ini-Datei

  Alt 8. Dez 2011, 12:24
Hab's mit HEX probiert ... klappt soweit gut ...

Vielen Dank für die Hilfe!
Marc
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Strings kodiert in ini-Datei

  Alt 8. Dez 2011, 12:42
Hier wäre noch eine Möglichkeit


Delphi-Quellcode:

Procedure LoadMemIniFileCrypted(INI: TMemInifile; const fn: String;
  Key: String);
var
  s: String;
  sl: TStringList;
  st: TStringStream;
  RC4Reader: TRC4StreamReader;
begin
  if not FileExists(fn) then
    Exit;
  sl := TStringList.Create;
  st := TStringStream.Create;
  try
    RC4Reader := TRC4StreamReader.Create(TFileStream.Create(fn, fmOpenRead or fmShareDenyWrite), Key);
    try
      st.CopyFrom(RC4Reader, RC4Reader.Size);
      st.Position := 0;
      s := st.ReadString(st.Size);
      sl.Text := s;
      INI.SetStrings(sl);
    finally
      RC4Reader.Free;
    end;
  finally
    st.Free;
    sl.Free;
  end;
end;

Procedure SaveMemIniFileCrpyted(INI: TMemInifile; const fn: String;
  Key: String);
var
  s: String;
  sl: TStringList;
  st: TStringStream;
  fs: TFileStream;
  RC4Writer: TRC4StreamWriter;
begin
  sl := TStringList.Create;
  st := TStringStream.Create;
  try
    INI.GetStrings(sl);
    s := sl.Text;
    st.WriteString(s);
    st.Position := 0;
    RC4Writer := TRC4StreamWriter.Create(TFileStream.Create(fn, fmCreate or fmShareDenyWrite), Key);
    try
      RC4Writer.CopyFrom(st, st.Size);
    finally
      RC4Writer.Free;
    end;
  finally
    st.Free;
    sl.Free;
  end;
end;
verwendet http://www.delphi-forum.de/viewtopic...&highlight=rc4
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 05:28 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